简体   繁体   English

为什么我的应用程序挂在本地主机上?

[英]Why is my app hanging on localhost?

I have recently built an MVC (well, more like a VC app) app in NodeJS and Express. 我最近在NodeJS和Express中构建了一个MVC(嗯,更像是VC应用程序)应用程序。 Everything was working fine until I installed express-validator and pasted the middleware in the app file. 一切运行良好,直到我安装了express-validator并将中间件粘贴到了app文件中。 Afterwards, localhost began hanging, with a GET / - - ms - - message in the console. 之后,本地主机开始挂起,并在控制台中显示一条GET /--ms--消息。 I started a new app, reinstalled the modules, and copied and pasted the code. 我启动了一个新应用,重新安装了模块,然后复制并粘贴了代码。 I still had the same issue, so I removed the express-validator middleware. 我仍然遇到相同的问题,因此删除了express-validator中间件。 Nothing changed. 没有改变。 App.js (entry point): 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'));
});

The routes file (/server/routes.js) 路由文件(/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);
};

The configure module (/server/configure.js) 配置模块(/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);
};

The home controller (/controllers/home.js): 家用控制器(/controllers/home.js):

module.exports = {
    home: function(req, res) {
        res.render('home');
    }
};

The Package file (package.json): 打包文件(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": {}
}

Of course, I have a view file (home.ejs) in the /views directory. 当然,我在/ views目录中有一个视图文件(home.ejs)。 If you need to see it, let me know and I will add it to the post. 如果您需要查看它,请告诉我,我将其添加到帖子中。 Please do not close this a being a duplicate; 请不要关闭此副本。 I have checked similar problems and they mostly regard simple apps without routers or anything like that. 我已经检查过类似的问题,他们大多将简单的应用视为无路由器之类的东西。 I tried the solutions offered that applied to me, but none were relevant or productive. 我尝试了适用于我的解决方案,但没有任何解决方案或有效的解决方案。 Update: I did have specific versions in the package file, but I still had the same issue. 更新:软件包文件中确实有特定版本,但是仍然存在相同的问题。

Try to use specific version (latest) of individual package in dependencies. 尝试在依赖项中使用单个软件包的特定版本(最新)。 for more detail Refer - https://docs.npmjs.com/files/package.json 有关更多详细信息,请参见-https: //docs.npmjs.com/files/package.json

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM