Qiitaの記事を書いた人に質問すれば良いのかもしれませんが、記事が書かれてから時間が経っているので、ここで質問させてください。
Expressを用いた簡単なAPIの作り方
https://qiita.com/yujiro0102/items/a973a0ae05a794d24eb5
上記サイトを見ながら、全く同じものを作ってみたのですが、
ブラウザで
http://localhost:3000/get-example
を表示すると、以下のエラーが表示されます。
TypeError: Cannot read property 'json' of undefined at Object.exports.get_example (/Users/atom/dev/sample/express-node-example/express-exports.js:13:6) at /Users/atom/dev/sample/express-node-example/express-example.js:19:15 at Layer.handle [as handle_request] (/Users/atom/dev/sample/express-node-example/node_modules/express/lib/router/layer.js:95:5) at next (/Users/atom/dev/sample/express-node-example/node_modules/express/lib/router/route.js:137:13) at Route.dispatch (/Users/atom/dev/sample/express-node-example/node_modules/express/lib/router/route.js:112:3) at Layer.handle [as handle_request] (/Users/atom/dev/sample/express-node-example/node_modules/express/lib/router/layer.js:95:5) at /Users/atom/dev/sample/express-node-example/node_modules/express/lib/router/index.js:281:22 at Function.process_params (/Users/atom/dev/sample/express-node-example/node_modules/express/lib/router/index.js:335:12) at next (/Users/atom/dev/sample/express-node-example/node_modules/express/lib/router/index.js:275:10) at jsonParser (/Users/atom/dev/sample/express-node-example/node_modules/body-parser/lib/types/json.js:110:7)
記事の中でnodeの起動が、
node stripe-express.js
と書かれているのは、
node express-example.js
の誤りかと思って、起動しています。
実施した手順(サイトの記載のまま)
ここではexpress-node-exampleとします。 $ mkdir express-node-example ディレクトリへ移動しましょう。 $ cd express-node-example node.jsを用いるためにnpmをinitします。 $ npm init Expressをインストールします。 $ npm install express --save
ソース(サイトのコードを丸コピー)
express-example.js
//expressを使用するのでその設定 const express = require('express'); const bodyParser = require('body-parser'); const app = express(); //処理を記述した外部ファイルを参照 var export_func = require("./express-exports"); // urlencodedとjsonは別々に初期化 app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); //listenします。カッコ内の数字を変更することで解放するポート番号を変更できます。 app.listen(3000); //確認のためコンソールに出力します。 console.log('Server is online.'); //app.getでGETすることができます。最初の引数を変更することでURLが変更できます。二つ目が実行内容です。 app.get('/get-example', function(req, res) { export_func.get_example(); }) //app.getでPOSTすることができます。最初の引数を変更することでURLが変更できます。二つ目が実行内容です。 app.post('/post-example', function(req, res) { export_func.post_example(req.id, req.name); })
package-lock.jsonは、長すぎてはれませんでした。
「全く同じもの」とありますが、誤字脱字があるなどのミスが原因であることが多いです。
参考元の記事ではなく質問者様が書かれたコードがないとこちらは判断できないのでコードの提示をお願いします。
回答1件
あなたの回答
tips
プレビュー