【问题标题】:Error in starting the application through nodemon通过nodemon启动应用程序出错
【发布时间】:2018-05-26 00:56:11
【问题描述】:

我正在构建一个全栈应用程序,经过大量的浪费努力,我来到这里询问你们关于以下错误的问题。

另外,我确实知道这个错误的含义,因为我已经阅读过它,但我仍然无法找出某个地方存在的缺陷。

请求您帮助我,以便我可以继续我的工作。

文件夹架构:

nearbywi-fi(主目录): bin、node_modules、public、server、app.js、bower.js on, package.json, procfile, yarn-error.log, package-lock.json

公共:引导、图像、javascript、样式表

服务器:控制器、路由、视图

错误:

pinkman@pinkman:~/nearbywi-fi$ nodemon
[nodemon] 1.12.5
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node index.js`
module.js:544
throw err;
^

Error: Cannot find module '/home/pinkman/nearbywi-fi/index.js'
at Function.Module._resolveFilename (module.js:542:15)
at Function.Module._load (module.js:472:25)
at Function.Module.runMain (module.js:682:10)
at startup (bootstrap_node.js:191:16)
at bootstrap_node.js:613:3
[nodemon] app crashed - waiting for file changes before starting...

index.js

var express = require('express');
var router = express.Router();
var ctrlLocations = require('./controllers/locations');
var ctrlOthers = require('./controllers/others');

router.get('/', ctrlLocations.homelist);
router.get('/location', ctrlLocations.locationInfo);
router.get('/location/review/new', ctrlLocations.addReview);

router.get('/about', ctrlOthers.about);

module.exports = router;

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('./server/routes/index');
var users = require('./server/routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'server', '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;

package.json

{
 "name": "Nearbywi-fi",
 "version": "v1.3.2",
 "private": true,
 "scripts": {
 "start": "node ./bin/www",
 "postinstall": "node -e \"try { require('fs').symlinkSync(require('path').resolve('node_modules/@bower_components'), 'bower_components', 'junction') } catch (e) { }\""},
  "dependencies": {
  "body-parser": "~1.18.2",
  "cookie-parser": "~1.4.3",
  "debug": "~2.6.9",
  "express": "~4.15.5",
  "jade": "^1.11.0",
  "jquery": "^3.2.1",
  "jstransformer": "^1.0.0",
  "morgan": "~1.9.0",
  "nodemon": "^1.12.5",
  "pug": "^2.0.0-rc.4",
  "serve-favicon": "~2.4.5"
  },
  "main": "index.js",
  "author": "vivek Gupta",
  "license": "MIT",
  "devDependencies": {
  "bootstrap": "^4.0.0-alpha.6"
  },
  "engines": {
  "yarn": ">= 1.0.0"
  }
 }

【问题讨论】:

  • Index.js 大写的“I”是不是拼写错误?
  • 不小i:index.js我改了。
  • 啊。这是因为您没有指定要 nodemon 运行的文件

标签: express nodemon


【解决方案1】:

单独使用nodemon 会尝试运行 index.js

在你的情况下,这个文件是一个路由,而不是主应用程序,它甚至不在根目录中。所以你想运行nodemon app.js

这在日志和您的错误中得到了很好的总结:

[nodemon] starting `node index.js`
Error: Cannot find module '/home/pinkman/nearbywi-fi/index.js'

编辑:

根据您提供的 package.json,似乎入口点实际上应该是 "./bin/www",所以您需要 "nodemon ./bin/www"

另外,在你的 package.json 中,它写着 "main": "index.js", 但这应该是 "main": "bin/www",

【讨论】:

  • 我应该用 app.js 更新我的 package.json 和 bower.json 文件的主要属性吗?那会有帮助吗?虽然解决方案消除了错误,但仍然没有在 localhost 上启动应用程序。
  • 这是卡在:pinkman@pinkman:~/nearbywi-fi$ nodemon app.js [nodemon] 1.12.5 [nodemon] 随时重启,输入rs [ nodemon] 观看:. [nodemon] 开始 node app.js [nodemon] 干净退出 - 在重启前等待更改
  • 如果我使用 npm start 运行它运行良好。我不知道为什么 nodemon 不工作。
  • 你的 nodemon 日志应该是上面的样子
  • 您是否在 package.json 中指定了 main 文件?我诚然不知道它是否尊重这一点,但它应该
猜你喜欢
  • 2013-11-14
  • 2013-08-23
  • 2021-07-04
  • 2012-07-10
  • 1970-01-01
  • 2018-12-06
  • 2014-08-24
  • 2016-09-19
  • 1970-01-01
相关资源
最近更新 更多