質問編集履歴

2 package-lock.jsonについて追記

lightfull

lightfull score 2

2019/01/07 11:24  投稿

node.jsのexpressでAPIサーバを作りたい
Qiitaの記事を書いた人に質問すれば良いのかもしれませんが、記事が書かれてから時間が経っているので、ここで質問させてください。
Expressを用いた簡単なAPIの作り方
[https://qiita.com/yujiro0102/items/a973a0ae05a794d24eb5](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は、長すぎてはれませんでした。
  • Node.js

    2430 questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

1 手順とソースを記載

lightfull

lightfull score 2

2019/01/07 11:23  投稿

node.jsのexpressでAPIサーバを作りたい
Qiitaの記事を書いた人に質問すれば良いのかもしれませんが、記事が書かれてから時間が経っているので、ここで質問させてください。
Expressを用いた簡単なAPIの作り方
[https://qiita.com/yujiro0102/items/a973a0ae05a794d24eb5](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);
})
```
  • Node.js

    2430 questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る