Подтвердить что ты не робот

Как требовать Node Модуль в Node REPL без установки по всему миру?

В соответствии с руководством по эксплуатации 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

В домашнем каталоге я просто получаю ту же ошибку "не могу найти модуль".

4b9b3361

Ответ 1

Оператор require работает нормально. Игнорируйте undefined, что только node 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

Ответ 2

Печать undefined - это обычное поведение как для консоли браузера, так и для node.

Попробуйте ввести: express. (клавиша табуляции) - вы должны получить что-то вроде этого:

> 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  

Ответ 3

В зависимости от терминала/оболочки может потребоваться указать текущий каталог. Я использую gitbash в данный момент.

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

Когда я делаю это, объект возвращается.

node repl require example

Мне интересно, если это работает для других, это сработало для меня.