所以我正在关注This Tutorial here以获得一个个人/学习node.js项目,我想在GitHub上工作并存储,最终放到实时服务器或云托管上。它使用node.js,express,monk,mongoDB进行网站设置。但是我有一个持续的错误,当我运行'npm start'时,我没有找到答案。
当我尝试在我的node express项目中运行'npm start'时,这是我的命令窗口输出。
我知道:错误:找不到模块'C:\ Users \ username \ Desktop \ bin \ www'不在我的bin \ www所在的位置(它在nodetest1项目中)。
C:\ Users \ username \ Documents \ GitHub \ TEDResources \ node.js \ nodetest1< - 正确路径
那么,为什么npm会查看错误的位置,如何更新它以正确查看我的项目文件夹?我搜索过我的系统,无法在任何地方找到module.js。 (使用Windows 7 x64)我也试过nuking node.js并表达并从头开始没有运气。
//控制台错误输出
Microsoft Windows [Version 6.1.7601] 版权所有(c)2009 Microsoft Corporation。版权所有。 C:\ Users \ username \ Documents \ GitHub \ TEDResources \ node.js \ nodetest1> npm start
> nodetest1@0.0.0 start C:\Users\username\Documents\GitHub\TEDResources\node.j
s\nodetest1
> node ./bin/www
module.js:340
throw err;
^
Error: Cannot find module 'C:\Users\username\Desktop\bin\www'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
npm ERR! nodetest1@0.0.0 start: `node ./bin/www`
npm ERR! Exit status 8
npm ERR!
npm ERR! Failed at the nodetest1@0.0.0 start script.
npm ERR! This is most likely a problem with the nodetest1 package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node ./bin/www
npm ERR! You can get their info via:
npm ERR! npm owner ls nodetest1
npm ERR! There is likely additional logging output above.
npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod
ejs\\node_modules\\npm\\bin\\npm-cli.js" "start"
npm ERR! cwd C:\Users\username\Documents\GitHub\TEDResources\node.js\nodetest1
npm ERR! node -v v0.10.32
npm ERR! npm -v 1.4.28
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! C:\Users\username\Documents\GitHub\TEDResources\node.js\nodetest1
\npm-debug.log
npm ERR! not ok code 0
// NPM-的debug.log
0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\\\node.exe',
1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli 'start' ]
2 info using npm@1.4.28
3 info using node@v0.10.32
4 verbose node symlink C:\Program Files\nodejs\\node.exe
5 verbose run-script [ 'prestart', 'start', 'poststart' ]
6 info prestart nodetest1@0.0.0
7 info start nodetest1@0.0.0
8 verbose unsafe-perm in lifecycle true
9 info nodetest1@0.0.0 Failed to exec start script
10 error nodetest1@0.0.0 start: `node ./bin/www`
10 error Exit status 8
11 error Failed at the nodetest1@0.0.0 start script.
11 error This is most likely a problem with the nodetest1 package,
11 error not with npm itself.
11 error Tell the author that this fails on your system:
11 error node ./bin/www
11 error You can get their info via:
11 error npm owner ls nodetest1
11 error There is likely additional logging output above.
12 error System Windows_NT 6.1.7601
13 error command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start"
14 error cwd C:\Users\kellington\Documents\GitHub\TEDResources\node.js\nodetest1
15 error node -v v0.10.32
16 error npm -v 1.4.28
17 error code ELIFECYCLE
18 verbose exit [ 1, true ]
//的package.json
{
"name": "nodetest1",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"express": "~4.9.0",
"body-parser": "~1.8.1",
"cookie-parser": "~1.3.3",
"morgan": "~1.3.0",
"serve-favicon": "~2.1.3",
"debug": "~2.0.0",
"jade": "~1.6.0",
"mongodb": "*",
"monk": "*"
}
}
// 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', '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;
Microsoft Windows [Version 6.1.7601]
版权所有(c)2009 Microsoft Corporation。保留所有权利。
// dir result
> nodetest1@0.0.0 start C:\Users\username\Documents\GitHub\TEDResources\node.j
s\nodetest1
> dir
Volume in drive C is OS
Volume Serial Number is F87D-8771
Directory of C:\Users\username\Desktop
10/23/2014 11:13 AM <DIR> .
10/23/2014 11:13 AM <DIR> ..
10/13/2014 09:14 AM 146,016 7f6bd778-1c67-43fd-9865-372789ed7592_Loca
lIISWebsite.zip
10/07/2014 03:39 PM 1,086 Blue Eye Macro.lnk
08/28/2014 12:07 PM 1,197 DesignEphiphany.txt
10/22/2014 08:03 AM 2,163 Git Shell.lnk
04/17/2014 10:51 AM 308 GitHub.appref-ms
10/21/2014 10:54 AM <DIR> LocalIISWebsite
10/23/2014 11:11 AM <DIR> node.js
10/14/2014 10:07 AM <DIR> TextDocs
7 File(s) 1,704,717 bytes
8 Dir(s) 352,881,205,248 bytes free
答案 0 :(得分:9)
当我使用express创建第一个节点项目时,我遇到了同样的错误。但是当我尝试使用
运行它时node ./bin/www // it will work
而不是
npm start
服务器在端口3000处启动。您可以在localhost:3000上检查您的应用程序 可能它可以帮助其他人:)
答案 1 :(得分:4)
Fwiw,我遇到了同样的错误,结果发现有些东西已经在端口3000上运行了。我之所以提到这一点,是因为调试日志没有提到这一点,只是与你的类似错误。所以,这可能会帮助遇到这篇文章并碰巧遇到问题的人。
答案 2 :(得分:2)
有一个用于“autorun”的Windows注册表项 - “问题目录”设置为覆盖命令的默认启动目录。从注册表中删除它并修复了问题。感谢laggingreflex帮我调试。
答案 3 :(得分:1)
我在本教程后遇到了同样的问题,只是在按照说明第一次杀死服务器之后。我尝试了很多东西,包括上面列出的和其他几个线程。然而,只需在app.js中删除或注释掉以下内容就可以解决问题:
//var mongo = require('mongodb')
答案 4 :(得分:0)
今天发生在我身上,同样的错误看同一个教程,但是这个设置:
第一个目的是在网上搜索并找到这个页面,并且不能用所说的解决问题,但找到了一条线索。
第二个意图是使用相同的端口(3000)列出应用程序:
sudo netstat -ep | grep 3000
但没有。
第三个意图是更改使用的端口号&#34; nodetest1 / bin / www &#34;文件从 3000 到 3001 ,这就是诀窍。
var port = normalizePort(process.env.PORT || '3001');
从那时起,我现在可以浏览 http://localhost:3001 并继续关注本教程。
编辑:我发现我错误地使用了netstat,这显示了什么程序正在使用端口3000:
sudo netstat -epa | grep 3000
ntop正在使用它:
tcp 0 0 *:3000 *:* ESCUCHAR root 15508 2289/ntop
所以在我的情况下,更改www文件上的nodetest1端口是唯一可行的解决方案。
希望这有助于他人。
答案 5 :(得分:0)
我遇到了同样的错误,所以我跑了:
npm install
然后:
npm start
这对我有用
答案 6 :(得分:0)
在教程的app.js文件中,请务必按如下方式命名索引对象:
var index = require('./routes/index');
这应该可以纠正错误。
尽管教程作者说过,如果该行显示错误,则会抛出错误:
var index = require('./routes/routes');