Tag: 节点模块

噶:找不到variables:出口

我写了一个节点模块,可以用于后端和客户端 (exports || window).Bar= (function () { return function () { …. } })(); 现在我的业力testing使用PhantomJs并抱怨不存在的exportsvariables gulp.task('test', function () { var karma = require('karma').server; karma.start({ autoWatch: false, browsers: [ 'PhantomJS' ], coverageReporter: { type: 'lcovonly' }, frameworks: [ 'jasmine' ], files: [ 'bar.js', 'tests/bar.spec.js' ], junitReporter: { outputFile: 'target/junit.xml' }, preprocessors: { 'app/js/!(lib)/**/*.js': 'coverage' }, reporters: […]

节点module.exports返回undefined

我有一个Node.js和module.exports的问题。 我明白module.exports是一个返回对象的调用,该对象具有分配的任何属性。 如果我有这样的文件结构: // formatting.js function Format(text) { this.text = text; } module.exports = Format; 有了这个: // index.js var formatting = require('./formatting'); 有没有一种方法来初始化一个Format对象,并像这样使用它? formatting('foo'); console.log(formatting.text); 每当我尝试这样做,我得到一个错误,说formatting is not a function 。 然后我必须这样做: var x = new formatting('foo'); console.log(x.text); 这看起来很麻烦。 在keypress和request等模块中,它们可以直接使用,如下所示: var keypress = require('keypress'); keypress(std.in); 要么 var request = require('request); request('http://www.google.com', function (error, response, body) […]

如何在node.js的多个文件中分割类定义?

我的Foo类定义已经发展到我想要将其分割成多个文件的地步。 例如,我想要这样的东西: // file foo.js 'use strict'; function Foo() { }; Foo.prototype.constructor = Foo; Foo.prototype.methodA = function() { console.log('methodA'); }; module.exports = Foo; // file foo-aux.js 'use strict'; Foo.prototype.methodB = function() { console.log('methodB'); this.methodA(); }; // file main.js 'use strict'; const Foo = require('./foo'); var foo = new Foo(); foo.methodB(); module.export和require()使上面的代码工作正确的组合是什么?

来自Electron渲染器进程的require()节点模块通过HTTP提供服务

通常,在Electron应用程序中,您可以从主进程和渲染器进程中require节点模块: var myModule = require('my-module'); 但是,如果页面是通过HTTP加载而不是从本地文件系统加载的,这似乎不起作用。 换句话说,如果我打开一个这样的窗口: win.loadURL(`file://${__dirname}/index.html`); 我可以require一个节点模块没有问题。 但是,如果我打开一个这样的窗口: win.loadURL(`http://localhost:1234/index.html`); 我不再require在我的网页内的节点模块 – 我得到Uncaught Error: Cannot find module 'my-module'网页的控制台Uncaught Error: Cannot find module 'my-module' 。 有什么办法可以在通过HTTP提供的Electron页面中使用节点模块? 一点上下文:我的公司正在构build一个应用程序,需要能够作为一个Web应用程序, 并在一个电子壳内。 为了使这两个环境更简单和一致,我的Electron应用程序启动本地Web服务器并打开托pipe在http://localhost:1234的应用程序。 现在,我希望能够使用electron-spell-check-provider程序将拼写检查/拼写build议添加到应用electron-spell-check-provider 。 这个模块需要在渲染器进程中被导入和初始化,所以我试图在我的网页中require('electron-spell-check-provider') ,但是这样会导致Cannot find module错误。

如何为多个nodejs项目重用gulp任务

我正在尝试在两个不同的项目中重复使用我的gulp任务。 我把我的gulp任务提取到父目录中,并试图要求他们进来。这是我的目录结构。 parent/ gulp-tasks/ default.js project1/ node_modules/ gulpfile.js js/ project2/ node_modules/ gulpfile.js js/ 这就是我在每个项目的gulpfile.js中所有的东西 var requireDir = require('require-dir'); requireDir('../gulptasks'); 这是我的default.js看起来像: var gulp = require('gulp'); gulp.task('default', function() { //run code here }) 当我尝试运行gulp default ,我得到的是没有定义gulp 。 我知道父目录中没有node_modules ,但是有什么办法可以指向每个node_modules中的node_modules ? 我不是特别想要一个关于吞咽的答案,但如何构build我的项目,使我的代码可重用?

如何在Windows上安装cloud9

我已经按照这个链接“ https://github.com/ajaxorg/cloud9#installation-on-windows-experimental ”在Windows上安装cloud9,但我在“node server.js [args]”上发生错误。 正是越来越错误是找不到模块。可以任何人请帮助我在这个问题上。 谢谢Pradeep

在npm发布上更改根目录

我可以在发布时更改Node.js npm包的根目录吗? 我拥有的是以下内容: ├── lib ├── package.json ├── .npmignore ├── src │ ├── index.js │ └── sub │ └── mymodule.js └── test In /src是我所有的ES2015源代码。 我用Babel将其转录到我的/lib目录中。 我的package.json的main指向lib/index.js 。 之后,我可以做一个npm publish (我的.npmignore设置为src所以只有lib将被发布)。 现在我的包被部署到npmjs.com,在另一个包中,我可以用import index from 'mypackage'来导入它。 到现在为止还挺好。 但是如果我想直接导入sub/mymodule.js呢? 我必须import mymodule from 'mypackage/lib/sub/mymodule'编写import mymodule from 'mypackage/lib/sub/mymodule' 。 我真正想要的是import mymodule from 'mypackage/sub/mymodule'没有/lib/在我的path中import mymodule from 'mypackage/sub/mymodule' 。 我怎样才能做到这一点? npm文档中提到了我可以在package.json设置的directories.lib ,但它似乎会被完全忽略。 […]

NodeJS需要模块

首先,关于Node.js,我是一个全新的开发人员。 我已经开始创build一个示例快速应用程序,我想使用一个额外的模块来了解更多。 我已经通过npm安装了“mysql”模块,一切正常。 我在应用程序的开始处添加了它,如下所示: var mysql = require('mysql'); 现在,正如你已经知道的那样,express在目录routes中创build了一个index.js文件:我希望能够访问mysqlvariables,从这个index.js页面连接到db,但是使用命令 var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : 'root', }); 显然不起作用,给“500 ReferenceError:mysql没有定义”。 当然,我相信我需要通过这个variables,但是我真的没有线索,任何好的灵魂能够赐教吗? 我知道这是一个非常小的和基本的东西,但我已经试过了,似乎并没有工作: … app.get('/', routes.index, mysql); … 和index.js: exports.index = function(req, res, mysql){ …

集中式的node_modules

我想我的节点模块存储在一个集中的地方,比如/var/http/common/ ,让我的应用在不同的位置运行/运行,比如/var/http/www/apps/APP#1_NAME/ 。 我能够在server.js设置require('../../../common/express')来使用像require('../../../common/express')这样的相对path,但是从NPM的作者的阅读post来看,这听起来像是黑客攻击它,我应该使用npm link创build一个“本地”参考节点(这符号链接到真正的安装)。 我首先在/var/http/common/安装了我的节点模块,但是当我尝试创build符号链接( npm link ../../../common/node_modules/express )时,npm似乎已经将其处理为一个“全局”安装,并重新安装在/usr/local/lib/node_modules/express (并创build一个“本地”符号链接到它./node_modules/express -> ),这不是我所期望的发生。 这是我真正想要的吗? 我是否应该先使用npm config set prefix ?

nodejs:节点模块vs单例类

PRE:我已经读过NodeJS模块vs类,但是这更具体。 作为Node中一些重构的一部分,我有几个应用服务(DDD术语),这些应用服务在技术上被实现为Node模块。 由于(在一个DDD世界,可能是任何其他的事情)应用程序服务应该是单身人士,并且由于节点模块保证是1“实例”只,在我看来,这是一个好的适合(模块trivially实施'singletonness') 除了纯粹的观点之外,我有什么理由重新考虑将这些应用服务重构为适当的单例类(只要在javascript中可以保证“singletonness”)呢?