Articles of 需要

覆盖需要从根启动并检查节点模块而不更改其名称

我试图分享我的客户端和服务器代码,我想要一个整洁的方式要求我的依赖。 我目前使用webpack作为我的构build工具,并将其设置为parsing到我的资产/ js文件夹,所以我的客户端依赖关系如下所示: require('validators/login.js'); 我希望在整个服务器上分享完全相同的代码,但是我不想把if语句放进来检查是否服务器或客户端正在执行这个请求,所以我可以做类似于 if server rootRequire.. else require 我想要的服务器使用需求像客户端一样,并从根目录开始,但我也不想剥离它的function来searchnode_modules文件夹,如果它不返回结果。 我也想这样做,而不是把我所有的代码放在node_modules文件夹中。 有没有人有一些好的build议,如何正确地覆盖需求? 我已经阅读了大部分的hacky解决scheme,比如使用符号链接或者在node_modules中放置东西,我不想find这些答案,我想要一些干净的,实际上覆盖正确的东西。

如果我可以在node-mysql的callback中做一个“require”,那么模块函数会被添加到callback作用域还是全局作用域?

我正在使用nodejs和node-mysql驱动程序。 我发现自己正在做重复的锅炉板,如 client.query(querystr,queryparams,函数callback(错误,结果,字段){ if (err){ do err related stuff } else { do success related stuff } } 在大多数情况下,一切都是直截了当的,重复的,除了在成功上发生的事情,这取决于查询和上下文的变化。 所以我想封装所有这一切在一个单一的function,并通过querystr,queryparams和成功function。 问题:我不能这样做,因为这是在callback中,我不能让查询引擎使用我的成功函数,即使我通过callbackparameter passing它。 所以我想我可以在callback中做一个“要求”,如果是的话,将“必需”模块的function添加到全局范围或callback范围? 我希望后者B.

如何在nodejs中获取这个文件的path?

我是新的Nodejs。 我想从file1.js文件导出到file2.js。 file1.js位于根目录下,file2.js位于某个子目录下。 当我在file2.js中将它作为require('/file1')调用时,它的说法就像Uncaught Error: Module name "/file1" has not been loaded yet for context: _. Use require([]) Uncaught Error: Module name "/file1" has not been loaded yet for context: _. Use require([]) 。 任何帮助? 对不起,如果这是愚蠢的,但我是新的。

节点的JS说,方法是不存在的,当它是明确的

好的,所以我创build了一个testing项目来展示这个错误。 错误是节点JS无法在我的另一个对象中find我的getStr函数。 这是代码: test.js var Another = require('./another.js'); var Other = require('./other.js'); var otherStr = Other.getStr(); console.log(otherStr); other.js var Another = require('./another.js'); var str = Another.getStr(); another.js var Other = require('./other.js'); var str = "other String"; exports.getStr = function(){ return str; } 这是我的输出: C:\Users\Admin\Desktop\JS DEV\NODE DEV\server\test>node test.js C:\Users\Admin\Desktop\JS DEV\NODE DEV\server\test\other.js:3 var str = Another.getStr(); ^ […]

在nodejs中避免重复的最佳做法

我有多个js文件,在开始时都有相同的要求 var config = require("config"); var expect = require("chai").expect; var commonAssertions = require('../../../utils/common_assertions.js'); var commonSteps = require('../../../utils/common_steps.js'); 我正在考虑将所有这些文件放在一个文件中,只需要这个文件。 我想知道在nodejs中是否有最佳做法或惯例。

NodeJS使用来自不同文件的模块

假设我想configuration和使用passport模块。 在我的app.js ,我有如下的最小模块configuration: passport = require('passport'); // load module app.use(passport.initialize()); // initialize passport app.use(passport.session()); // use session 现在,我想为我的应用configuration路由。 但是,我有一个单独的文件,即./lib/router.js 。 问题是我是否应该将我的configuration的passportvariables传递给该文件,或者require再次在该文件中的护照模块。 为了显示: // **app.js** router = express.Router() // declare router // option (A) Do I have to pass the passport variable to be using that same variable I have already defined in app.js? app.use(require('./lib/router')(router, passport)) […]

如何在node.js应用程序中需要额外的模块

嘿,我试图为我的应用程序得到一个表格。 我想去这个( https://github.com/tristen/tablesort ),但我有问题得到它的工作。 我把它放在我的package.json文件中,然后在整个NPM中安装它,然后在代码中要求它像var tablesort = require('tablesort'); 。 主要的问题在于随附的模块。 在github项目中,它们是这样要求的: <script src='tablesort.number.js'></script> 。 我如何将这种types的代码转换为节点/需要友好的代码来加载所有这些模块,并让我对表格进行sorting? 我不知道如何让这个tablesorter与nodejs应用程序运行。

节点模块提供作为获取者和设置者

我有以下代码工作正常。 现在我需要添加额外的属性和function,并导出它们,build议如何做? 可以说我有两个函数和两个额外的属性,我需要导出。 属性如isValid prop1 var internal = require("../plu/internal"); module.exports = {isAvailable: false}; internal.eventEmitter.on('AppA', function () { module.exports.isAvailable = true; });

只能在监听器函数中加载脚本/模块会导致问题?

My Express应用程序包含在特定情况下使用的JS代码片段; 确切地说,只有当来自某个网​​站的请求即将到来时。 在实践中,它看起来像这样: router.post('/', function(req, res) { res.setHeader('Content-Type', 'application/json'); switch(req.body.source){ case "/site1": var sitescr_a = require('sitesc_a'); sitescr_a.DoStuff(); break; case "/site2": var sitescr_b = require('sitesc_b'); sitescr_b.DoStuff(); break; }; } 当然,这意味着在其他情况下sitescr_a.DoStuff()和sitescr_b.DoStuff()都不可用 – 这是我的目标,因为这些是特定的脚本 – 但是会导致其他问题吗? 或者这是一种被认为安全的方法?

调用require时,我似乎得到一个“新的模块实例”

我试图让MongoDB与Express.js一起工作。 我遵循这篇文章,并创build了一个文件db/index.js ,它提供了创build数据库连接和返回连接实例的function。 在app.js我首先需要该文件,然后调用它的函数connect ,它成功连接到数据库。 但是,当我需要文件db/index.js在另一个文件routes/users.js ,它返回的数据库引用是null ,虽然我期望它是我在app.js连接时得到的相同引用。 require总是返回第一次调用返回的模块的同一个实例吗? 我究竟做错了什么? 编辑:我明白,因为调用db.connect是asynchronous的, users.js的db值可能在连接函数返回之前理论上是null的。 不过,我已经通过testing进行了validation,即使连接已成功创build,当我对path / users执行POST请求时, db仍然为null 。 这里是3个相关的文件。 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'); // configuration environment based on process.env.NODE_ENV environment variable var config = […]