50

根据 node js 说明手册,强烈建议不要在全局范围内安装任何 node 模块。

我尝试了各种各样的东西。我在我的主目录、我的 git 文件(带有 node_modules)文件夹和实际的 node_modules 文件夹中执行了以下命令。

> var express=require('express');
undefined
> var express=require('node_modules/express');
Error: Cannot find module 'node_modules/express'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at repl:1:13
    at REPLServer.self.eval (repl.js:110:21)
    at repl.js:249:20
    at REPLServer.self.eval (repl.js:122:7)
    at Interface.<anonymous> (repl.js:239:12)
    at Interface.EventEmitter.emit (events.js:95:17)

请注意,在上面,我希望它们在我的 git 文件夹中(带有 node_modules)。我发现这条线很好奇

> var express=require('express');

产生

undefined

在主目录中,我只是得到相同的“找不到模块”错误。

4

3 回答 3

52

你的require陈述工作正常。忽略undefined,这只是节点 REPL。此处对此undefined进行了解释,有关此内容的其他材料的链接,请参见下面的评论。

您可以通过以下方式进行验证:

mkdir /tmp/test-repl
cd /tmp/test-repl
npm install express
node
> var express = require('express');
undefined
> express
//long object which is the express module gets printed
于 2013-08-15T19:55:46.470 回答
4

打印undefined是浏览器控制台和节点 repl 的正常行为。

尝试输入:快递。(制表键) - 你应该得到这样的东西:

> var express = require('express');
undefined
> express.
express.__defineGetter__      express.__defineSetter__      express.__lookupGetter__      express.__lookupSetter__      express.constructor           express.hasOwnProperty
express.isPrototypeOf         express.propertyIsEnumerable  express.toLocaleString        express.toString              express.valueOf               

express.apply                 express.arguments             express.bind                  express.call                  express.caller                express.constructor
express.length                express.name                  express.toString              

express.Route                 express.Router                express.application           express.arguments             express.basicAuth             express.bodyParser
express.caller                express.compress              express.cookieParser          express.cookieSession         express.createServer          express.csrf
express.directory             express.errorHandler          express.favicon               express.json                  express.length                express.limit
express.logger                express.methodOverride        express.mime                  express.multipart             express.name                  express.prototype
express.query                 express.request               express.response              express.responseTime          express.session               express.static
express.staticCache           express.timeout               express.urlencoded            express.version               express.vhost  
于 2013-08-15T19:54:39.403 回答
4

根据终端/外壳,它可能希望您指定当前目录。我目前正在使用 gitbash。

 _u = require('./node_modules/underscore/underscore');

当我这样做时,对象被返回。

节点 repl 需要示例

我很好奇这是否适用于其他人,它适用于我。

于 2016-10-25T14:40:07.310 回答