请列位看这里:http://expressjs.com/starter/generator.html,我按照他说的执行命令
express myapp
生成很多文件,然后按照他说的办法运行一些很好,可以通过端口3000访问,我的疑问是如果我要更改端口号,该怎么搞,我没发现他给自动生成的app.js里有相关的代码呀。
如果不用这个命令,我自己打代码,如下就可以了:
var app = new express(); app.listen(3000);
自动生成的app.js是这样的:
var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var routes = require('./routes/index'); var users = require('./routes/users'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); // uncomment after placing your favicon in /public //app.use(favicon(__dirname + '/public/favicon.ico')); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', routes); app.use('/users', users); // catch 404 and forward to error handler app.use(function(req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err); }); // error handlers // development error handler // will print stacktrace if (app.get('env') === 'development') { app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: err }); }); } // production error handler // no stacktraces leaked to user app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: {} }); }); module.exports = app;
我在这段代码中加入句 app.listen(2000);后发现2000和3000端口都能用了,这么才能停用3000端口呀
app.set('port', process.env.PORT || 3000); 把3000换成你想要的值。
试了下,没管用,我设置了
app.set('port', process.env.PORT || 2000);
但运行起来还是3000
@会长: 很显然 process.env.PORT 的只就是3000啊。
app.set('port', 2000); 这么试试
@jone_e: 我刚才试了,这么写就可以:app.listen(2000);
@会长: process.env.PORT = 2000; 这样就取消3000 端口了。
我从昨天开始弄nodejs,也是小菜。
原来是在www文件里写这呢,起的这个破名字,原来十个文本文件,以为十个可执行文件。
的确是改listen监听的端口 这儿有一个成熟的项目供你参考 https://github.com/cnodejs/nodeclub/blob/master/app.js
我在这段代码中加入句 app.listen(2000);后发现2000和3000端口都能用了,这么才能停用3000端口呀。
@会长: 去生成的代码里搜一下3000,搜不到的话就去express的node_module里搜一下,再搜不到的话就打印一下process.env.PORT的值
@会长: 我本机express装不上去,猜测端口号可能是在package.json文件里面。
@_nil: 谢谢,我看下
原来是在www文件里写这呢,起的这个破名字,原来十个文本文件,以为十个可执行文件。
app.js加上这句
app.set('port', process.env.PORT || 3000);
试了下,没管用,我设置了
但运行起来还是3000
我是这样运行的:
DEBUG=myapp ./bin/www
原来是在www文件里写这呢,起的这个破名字,原来十个文本文件,以为十个可执行文件。