Nodejs 为什么express一启动就结束

Nodejs 为什么express一启动就结束

express版本是4的

app.js var express = require(‘express’); var route = require(’./route’); var app = express();

app.set(‘views’, ‘./views’); app.set(‘view engine’, ‘jade’); app.set(‘port’, 8080);

route.initialize(app)

console.log(‘Listening on port 8080’);

route.js module.exports.initialize = function(app) {

app.get("/", function(req, res) {
	res.send("hello world!");
});

};

新手入门 求指导


4 回复

当使用Express框架时,如果应用启动后立即退出,可能是因为没有正确地监听端口。在你的例子中,app.listen() 方法没有被调用,这会导致应用启动后迅速关闭。

解决方案

你需要在 app.js 文件中添加 app.listen() 方法来监听指定的端口。以下是修改后的代码:

app.js

var express = require('express');
var route = require('./route');
var app = express();

app.set('views', './views'); // 设置视图目录
app.set('view engine', 'jade'); // 设置模板引擎为Jade
app.set('port', process.env.PORT || 8080); // 设置默认端口

// 初始化路由
route.initialize(app);

// 监听端口
app.listen(app.get('port'), function() {
    console.log(`Listening on port ${app.get('port')}`);
});

示例代码解释

  1. 引入模块

    var express = require('express');
    var route = require('./route');
    var app = express();
    

    这里引入了 Express 和自定义的路由模块,并创建了一个 Express 应用实例。

  2. 设置配置

    app.set('views', './views'); // 设置视图目录
    app.set('view engine', 'jade'); // 设置模板引擎为Jade
    app.set('port', process.env.PORT || 8080); // 设置默认端口
    

    这些行设置了视图目录、模板引擎和端口号。process.env.PORT 用于支持环境变量,例如在 Heroku 等云平台上部署时使用。

  3. 初始化路由

    route.initialize(app);
    

    调用自定义的路由初始化函数。

  4. 监听端口

    app.listen(app.get('port'), function() {
        console.log(`Listening on port ${app.get('port')}`);
    });
    

    这是关键的一行代码。它告诉 Express 在指定的端口上监听 HTTP 请求。如果不调用 app.listen(),Express 应用会在启动后立即退出。

通过以上修改,你的 Express 应用将能够正常启动并监听指定的端口。


因为没有执行 app.listen(port)

thx… 傻逼了…

根据你的描述,问题可能出在app.js文件中缺少一个关键步骤,即没有调用app.listen()方法来启动服务器。默认情况下,Express应用不会自动启动服务器,需要显式地调用app.listen()方法。

以下是修改后的代码:

app.js

var express = require('express');
var route = require('./route');

var app = express();

app.set('views', './views');
app.set('view engine', 'jade');
app.set('port', 8080);

route.initialize(app);

// 启动服务器
app.listen(app.get('port'), function() {
    console.log('Listening on port %d', app.get('port'));
});

route.js

module.exports.initialize = function(app) {
    app.get("/", function(req, res) {
        res.send("hello world!");
    });
};

解释

  1. app.listen() 方法用于启动HTTP服务器并绑定到指定端口(这里是8080)。
  2. app.listen()的回调函数中,你可以打印一条消息确认服务器已成功启动。

示例

当你运行 node app.js 时,应该会看到控制台输出 Listening on port 8080,这意味着服务器已经成功启动,并且监听8080端口。此时,你可以通过浏览器访问 http://localhost:8080 来查看结果。

如果你仍然遇到问题,请确保:

  • express 包已经安装(可以通过 npm install express 安装)。
  • jade 模板引擎已经安装(可以通过 npm install jade 安装)。
  • 所有的文件路径正确无误。

希望这可以帮助你解决问题!

回到顶部