【问题标题】:Node.JS with Express, script complies but does not create an http server带有 Express 的 Node.JS,脚本符合但不创建 http 服务器
【发布时间】:2018-11-27 16:43:34
【问题描述】:

我使用的是 MEAN 堆栈,并且我更改了 MongoDB 和 Angular 的托管 IP 地址,以便可以远程访问该站点。现在,我的 Node.JS/Express 后端无法正常工作。脚本编译,它显示“服务器已启动”,但端口 3000 上没有运行 http 服务器。我不知道是否可以输入错误检查代码..

var express = require('express');
var mongoose = require('mongoose');
var cors = require('cors');
var bodyparser = require('body-parser');
var passport = require('passport');
var app = express();
var route = require('./route/routes.js');

require('./model/players');
require('passport');

mongoose.connect('mongodb://192.168.1.3:27017/elo', {useNewUrlParser: true});

mongoose.connection.on('error',(err) => {
    console.log(err);
});

const PORT = 3000;

app.use(cors());

app.use(bodyparser.json());

app.use(passport.initialize());

app.use('/api', route);

app.use(function(req, res, next) {
    var err = new Error('Not found');
    err.status = 404;
    next(err);
});

app.use(function(err, req, res, next) {
    if (err.name === 'UnauthorizedError') {
        res.status(401);
        res.json({"messege" : err.name + ": " + err.message});
    }
});

app.get('/',(req, res) =>{
    res.send("App Works");
});

app.listen(PORT, ()=>{
    console.log("Server started");
});

【问题讨论】:

  • 您说您更改了 Angular 的 IP,您的意思是什么?您是否尝试通过 IP 地址访问此服务器?
  • 我看到您在哪里更改了猫鼬的连接,但我没有看到您在哪里更改节点服务器的连接。您是否检查过它是否仍以 localhost 运行?看看这个stackoverflow.com/questions/15003947/…
  • 我使用 ng serve --host=IP.ADDRESS 来运行 Angular 客户端。我对 MongoD 使用了同样的东西。我不知道如何对 nodemon 做同样的事情,我的研究只是表明“看到这一切并不重要”
  • 我可以使用 nodemon 运行不同的代码块,并让它成功监听 3000 端口,所以这不是环境问题......

标签: node.js express


【解决方案1】:

找到有问题的代码:

app.use(function(req, res, next) {
    var err = new Error('Not found');
    err.status = 404;
    next(err);
});

我不知道它有什么问题,但是一旦我将其注释掉,“应用程序有效”

【讨论】:

    猜你喜欢
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    相关资源
    最近更新 更多