提问人:Isaac Krementsov 提问时间:6/14/2017 最后编辑:Isaac Krementsov 更新时间:6/14/2017 访问量:521
为什么我的应用程序挂在 localhost 上?
Why is my app hanging on localhost?
问:
我最近在 NodeJS 和 Express 中构建了一个 MVC(嗯,更像是一个 VC 应用程序)应用程序。一切正常,直到我安装了 express-validator 并将中间件粘贴到应用程序文件中。之后,localhost 开始挂起,控制台中显示 GET / - - ms - - 消息。我启动了一个新应用程序,重新安装了模块,并复制并粘贴了代码。我仍然有同样的问题,所以我删除了快速验证器中间件。什么都没有改变。 App.js(入口点):
var config = require('./server/configure');
var express = require('express');
var app = express();
var app = config(app);
app.set('port', process.env.port || 3300);
app.set('views', __dirname + '/views');
app.listen(app.get('port'), function(req, res){
console.log('Server up: http://localhost:' + app.get('port'));
});
路由文件 (/server/routes.js)
var express = require('express');
home = require('../controllers/home');
module.exports = function(app) {
router = express.Router();
router.get('/', home.home);
app.use(router);
};
configure 模块 (/server/configure.js)
var path = require('path'),
routes = require('./routes'),
ejs = require('ejs'),
express = require('express'),
bodyParser = require('body-parser'),
cookieParser = require('cookie-parser'),
morgan = require('morgan'),
methodOverride = require('method-override'),
errorHandler = require('errorhandler');
module.exports = function(app) {
app.use(morgan('dev'));
app.use(bodyParser.json);
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser({
uploadDir: path.join(__dirname, 'public/upload/temp')
}));
app.use(methodOverride());
app.use(cookieParser('secret value'));
routes(app);
app.use('/public/', express.static(path.join(__dirname, '../public')));
if ('development' === app.get('env')) {
app.use(errorHandler());
}
app.set('view engine', 'ejs');
return(app);
};
主控制器 (/controllers/home.js):
module.exports = {
home: function(req, res) {
res.render('home');
}
};
包文件 (package.json):
{
"name": "krementcookdev",
"version": "1.0.0",
"description": "the krementcook web application",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Isaac Krementsov",
"license": "ISC",
"dependencies": {
"body-parser": "*",
"cookie-parser": "*",
"ejs": "*",
"errorhandler": "*",
"express": "*",
"express-handlebars": "*",
"express-validator": "*",
"method-override": "*",
"morgan": "*",
"path": "*"
},
"devDependencies": {}
}
当然,我在 /views 目录中有一个视图文件(home.ejs)。如果您需要查看它,请告诉我,我会将其添加到帖子中。请不要关闭此重复项;我检查过类似的问题,它们大多考虑没有路由器或类似东西的简单应用程序。我尝试了适用于我的解决方案,但没有一个是相关的或富有成效的。 更新:我在包文件中确实有特定版本,但我仍然遇到同样的问题。
答:
0赞
Urvish Kothari
6/14/2017
#1
尝试在依赖项中使用单个包的特定版本(最新版本)。有关更多详细信息,请参阅 - https://docs.npmjs.com/files/package.json
评论
0赞
Isaac Krementsov
6/14/2017
我以前确实这样做过,但我仍然有同样的问题。
评论