npm开始在错误的目录中查找/ bin / www,如何更新

时间:2014-10-17 16:14:35

标签: node.js npm

所以我正在关注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

7 个答案:

答案 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)

今天发生在我身上,同样的错误看同一个教程,但是这个设置:

  • Ubuntu 14.04
  • npm v5.11.1
  • node v3.9.2

第一个目的是在网上搜索并找到这个页面,并且不能用所说的解决问题,但找到了一条线索。

第二个意图是使用相同的端口(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');