1. ホーム
  2. node.js

[解決済み] localhostはデータを送信していない - ERR_EMPTY_RESPONSE

2022-02-17 04:31:51

質問

NodeJSを書くためにVScodeを使用する

しかし、確認すると、localhostが正しく応答しておらず、"the page didn't send any data.と表示されます。 あちこち探して、可能な限りの設定を変えてみました。

クロームの設定を元に戻す キャッシュクリア、履歴クリア、ポート番号変更、LAN設定変更。

 ''''

const Joi = require('joi');
const express = require('express');
const app = express();

app.use(express.json); //to take inputs ffrom the browser
const courses = [
{id: 1, name: "course 1"},
{id: 2, name: "course 2"},
{id: 3, name: "course 3"},
 ];

app.get('/', (req, res) =>{
res.send("Hello world!!");
res.end();
});

app.get('/api/courses/', (req, res) =>{
res.send(courses);
res.end();
});

const port = process.env.port || 8080;
app.listen(port, ()=> console.log(`Listining on port ${port}..`));

 ''''

ウェブページに印刷された全コースを見たい。

どのように解決するのですか?

あなたの courses はオブジェクトなので、文字列として送信する必要があります。jsonで送れば、ブラウザが解析してくれる。

app.get('/api/courses/', (req, res) => {
  // change here, your object is stringified to json by express
  res.json(courses);
});

ブラウザから入力を受けるには、以下のようなパッケージを使用する必要があります。 body-parser でなく app.use(express.json)

var express = require('express')
var bodyParser = require('body-parser')

var app = express()

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

// parse application/json
app.use(bodyParser.json())