本地主机未发送任何数据-ERR_EMPTY_RESPONSE

时间:2019-03-28 01:59:41

标签: node.js google-chrome express localhost

使用VScode编写NodeJS

但是要检查,本地主机没有正确响应,它说“页面未发送任何数据。 我尝试到处寻找并更改了所有可能的设置。

还原的Chrome设置 清除缓存,清除历史记录,更改端口号,更改局域网设置。

 ''''

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}..`));

 ''''

想看所有印刷在网页上的课程。

3 个答案:

答案 0 :(得分:0)

您的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())

答案 1 :(得分:0)

`package.json
"dependencies": {
    "body-parser": "^1.19.0",
    "ejs": "^3.0.1",
    "express": "^4.17.1",
    "mongoclient": "^1.0.3",
    "mongodb": "^2.2.33",
    "mongoose": "^5.8.12"
  }

app.js

const express = require('express');
const bodyParser=require('body-parser');
const app=express();

var db=require('./db')
var user=require('./module/user');

const port=process.env.PORT || 8080;
//to read the name property from html or ejs form or page body parser used there for.(tunnel)
app.use(bodyParser.urlencoded({ extended: true}))
//app.use(bodyParser.json);`

您无需在“ body-parser”中添加app.use行:“ ^ 1.19.0”此版本已运行 在我那个时代。

答案 2 :(得分:0)

我遇到了类似的问题,这是由使用 http 调用仅 https 的 api 端点引起的。