我仔细检查了项目根目录中的app.js文件,但是我找不到app.listen或为 npm start 运行的服务器对象。一切正常,除了,但我需要服务器对象才能使用socket.io。我已尝试手动设置它,但最终出现错误,说端口(3000)正在使用中。你能指定哪个行或方法包含app.listen吗?这个模板是使用快速生成器生成的,我只做了一些修改。
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();
var http = require('http');
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
// 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;
以下是错误日志
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:904:11)
at Server._listen2 (net.js:1042:14)
at listen (net.js:1064:10)
at Server.listen (net.js:1138:5)
at Function.app.listen (/Users/Lee/Desktop/bwall/node_modules/express/lib/application.js:556:24)
at Object.<anonymous> (/Users/Lee/Desktop/bwall/bin/www:7:18)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
答案 0 :(得分:0)
您的错误是说您已在计算机上使用端口3000,因此无法运行此服务器。你应该做的是寻找正在运行的其他进程,然后杀死它们,然后重新尝试。
例如,如果您在Mac上,则打开活动监视器,查找节点应用程序并将其终止。
这将解决您的问题!
更新:如果您想查看npm start
脚本正在执行的操作,请查看您的package.json。