Tag: 需要

node.js:找不到模块“it-is”

我试图运行这个 node.jsunit testing,我得到这个错误: module.js:340 throw err; ^ Error: Cannot find module 'it-is' 从代码中可以看出,这个“它是”模块是一个unit testing模块 var it = require('it-is'); … it("Subject").equal(util.normalizeSubject("Re[2]:Subject")); 然而,谷歌这样的框架几乎是不可能的,因为谷歌只是删除了“它是”的一部分..我searchnode.jsunit testing无法find一个名为“它是”的东西.. 帮帮我!

Nodejs引用module.exports

我试图做一些浏览器和nodejs服务器之间共享的js代码。 要做到这一点,我只是使用这些做法: http : //caolanmcmahon.com/posts/writing_for_node_and_the_browser/ 问题是当我想要导出一个函数,而不是一个对象。 在节点中,您可以执行如下操作: var Constructor = function(){/*code*/}; module.exports = Constructor; 这样当需求被使用时你可以这样做: var Constructor = require('module.js'); var oInstance = new Constructor(); 问题是当我尝试引用模块中的module.exports对象,并使用该引用来覆盖它与我的function。 在模块中它将是: var Constructor = function(){/*code*/}; var reference = module.exports; reference = Constructor; 为什么这不起作用? 我不想使用简单的解决scheme插入干净的代码,但我想明白为什么它是非法的,即使引用=== module.exports是真实的。 谢谢

如何为兄弟目录中的所需脚本提供模块依赖关系

我正在运行一个node.js脚本( foo.js ) require位于同级目录中的助手脚本。 //foo.js: var magic = require('../util/magic'); magic.js使用一个npm模块express 。 但是,“程序”的主目录(包含package.json和node_modules )是node_modules所在的文件夹。 /program /node_modules /express .. /foo.js /package.json /util /magic.js 运行程序时,语句require('express')在magic.js中失败 – 找不到该模块。 有没有办法让node.js从program/node_modules目录加载express模块? 我想避免以下任何一项: 将node_modules目录移动到util和program的通用父项 添加一个node_modules目录到util 将所需模块的参考传递给magic.js 感谢你的帮助!

将node.js中的另一个模块replace为另一个模块

如果我有一个node.js应用程序有数百个引用模块的文件(比如下划线),并且我想用另一个模块(比如说lodash)来代替这个模块,那么做这个replace的一个显而易见的方法就是使用一个全局名称replace和switch从package.json文件中取出模块。 有没有办法只是改变名称引用的模块,以便当node.js看到require('moduleA')它实际上加载“moduleB”而不是? 现在我知道这会导致命名地狱,因为任何在项目上工作的人都会看到require('moduleA')并且不知道被加载的真正模块是'moduleB',所以最终你可能会想要第一个解。 我正在考虑的用例是,如果您想尝试一些API兼容模块的替代方法来测量每个模块的应用程序性能(例如)。

nodejs需要声明问题

我是nodejs的新手。 我有以下文件和代码: // file: myfunc.js function myfunc() { return "myfunc()"; } exports = myfunc; 和 // file: index.js var mf = require("./myfunc"); var mfunc = mf(); console.log(mfunc); 当我从命令行运行node index.js ,我得到的错误 var mfunc = mf() ^ TypeError: Object is not a function 为什么我得到这个错误? 我看到别人的代码,我粘贴下面,我试图按照相同的方法试图让require()返回一个函数,而不是一个对象。 // file: index.js from another app var express = require('express'); var app […]

使用NodeJS提供的shell

一旦你安装了NodeJS,你的计算机上就会有一个名为NodeJS的可执行文件,它是一个shell。 我想知道我能做些什么…在这里,你可以运行JS代码,例如,在浏览器的控制台,很好。 现在,是否有可能需要该env中的模块 ? 这样做,我将能够使用这些模块提供的function来运行一些JS代码,这些模块是IMO真的非常棒。 我试着用-g选项安装模块(例如npm install -g express ); 然后(在那个shell里)我想运行require('express')但是它没有工作,它说: Error: Cannot find module 'express' at Function.Module._resolveFileName … 想法?

在node.js应用程序的每个模块中需要一些相同的包的影响和替代方法?

假设我有一个应用程序如下: server.js (main)需要不同的外部节点包,比如underscore.js 。 var Underscore = require("underscore"); server.js也需要在我的应用程序中定义一些模块。 例如,它可能需要一个路由器模块来处理Express路由。 var Router = require("./sources/router.js"); 我有我的router.js文件如下: var Router; Router = (function() { function Router(app, oauth) { app.get('/', function(request, response) { // … }); } return Router; })(); module.exports = Router; 问题: 如果我想在我的Router模块中使用underscore ,我应该再次需要吗? 我应该为每个模块做到这一点吗? 有什么影响? 我会最终得到像这样的东西: var Router; Router = (function() { Router.prototype.underscore = require("underscore"); function […]

清洗package.json“主要”用于require

我想保持相对path,并始终使用前导目录。 比方说,我有一个stringhello 。 在你的package.main中引用./hello.js hello是完全有效的。 但是,如果你打了hello并要求它,它会寻找hello node_module而不是文件。 我怎样才能用./使用path前缀hello ? 问题是package.json main可以有这些有效的选项。 我不是说这些都指向相同的文件。 我在说hello.js和hello不能直接放在require 。 ../hello.js ./hello.js hello.js ../hello ./hello hello 我怎样才能清理所有这些path,以便他们能够处理require? path.join摆脱主导path,所以这是行不通的。 另一方面, path.resolve确实可以清除所有这些用于require的path,但是它使得它成为绝对path。 预期的行为: ../hello.js – >相同 ./hello.js – >相同 hello.js – > ./hello.js ../hello – >相同 ./hello – >相同 hello – > ./hello 我应该创build一个正则expression式来看看path吗? 我如何确保它能够跨平台工作? var pkg = require('./package.json') // var mainPackage = […]

通过节点中的module.exports获取variables

我在类A.js中有一个variablesvar1 ,它是一个模块级variables。 但是,我有一些unit testing检查,以确保var1的内容是我所期望的。 为了让我的testing文件可以访问var1 ,我使用了module.exports 。 A.js var var1 = {}; function resetVar1() { var1 = {}; } module.exports.resetVar1 = resetVar1 function A() { // some init stuff } A.prototype.addVal = function (key, val) { // some code var1[key] = val; // some more code } module.exports.var1 = var1; 我的testing用例也运行了一些更新A.js var1的A.js 。 当我运行这个代码时,它A.var1在我的testing文件中第一次更新A.var1 ,但是在所有其他时间,它都不会被更新(如下所示) […]

require(“nodegit”)阻止脚本退出

我无法使用nodegit (v0.9.0)。 任何require软件包的.js脚本将永远挂起而不能退出。 例: var nodegit = require('nodegit'); console.log("hello world"); 在命令行上运行这个命令会导致预期的控制台输出,但脚本永远不会退出。 我需要使用ctrl-C从脚本中获取控制权。 但是,如果我评论一下这个要求声明: // var nodegit = require('nodegit'); console.log("hello world"); 事情工作得很好。 我在Windows(7)和Linux(CentOS 7.1.1503)上遇到过这种情况。 这两台机器都使用v4.2.0的节点。 我猜这不是一个错误,而且我滥用图书馆,但我不明白我可能做错了什么。