Tag: 需要

在多个文件/模块中使用相同的模块

假设我需要一个承诺模块,并且在多个文件中使用它,我将所有这些文件包含在app.js 。 我必须使用每个都需要的承诺模块吗? 有没有办法将它传递给导入的模块?

间谍的解构要求的方法

我有一个方法,我input一个解构方法。 我试图窥探这个方法,但仍然遇到错误。 const { addition } = require('./my-math-lib'); const additionSpy = sinon.spy(addition); testMethod.doMath(); expect(additionSpy.calledOnce).to.be.equal(true); 不幸的是,这个unit testing不起作用。 乳清我看着additionSpy对象,我看到notCalled是真的。 如果我将代码更改为 – const mathStuff = require('./my-math-lib'); const additionSpy = sinon.spy(mathStuff, 'addition'); testMethod.doMath(); expect(additionSpy.calledOnce).to.be.equal(true); 这个unit testing会通过。

Webpack需要expression式外部

我有一个expression式要求,应该在运行时解决,但我不能得到我的头围绕这个简单的例子的webpackconfiguration: import something from 'module'; import pkg from './package.json'; let a; if (pkg.main) { a = require(pkg.main); } 生成的版本应该包含module但在运行时也需要./package.json和pkg.main作为commonjs模块 – 换句话说,将它们从版本中排除。 我的webpack.config.js到目前为止: var webpack = require('webpack'); module.exports = { entry: './src/main.js', output: { filename: '[name].js', path: './build' }, target: 'node-webkit', plugins: [ new webpack.ExternalsPlugin('commonjs', './package.json') ], module: { noParse: /\.min\.js/, exprContextRegExp: /$^/, exprContextCritical: false, loaders: […]

为需要节点模块创build工厂

我想创build基于所需的操作系统的Windows / Linux的工厂/或类似的方法,例如,如果使用Linux var isLinux = /^linux/.test(process.platform); var isWin = /^win/.test(process.platform); if(isLinux){ var spawn = require('child-process'); }{ elseif(isWin) var spawn = require('cross-spawn') } module.export = spawn; 我知道交叉产卵也是为Windows …我的问题是有一个更好的方式来写在节点(ver4.4),而不是只是如果

要求()从string到对象

假设我有一个string中的js文件的内容。 此外,假设它有一个exports['default'] = function() {…}和/或其他导出的属性或函数。 有没有什么办法可以将它从string中“编译”成一个对象,这样我就可以使用它了? (另外,我不想像require()那样caching它。)

使用NodeJS别名模块

这里的一些背景: 这不是我不能使用Webpack,而是我不想使用Webpack 。 我想尽可能保持一切为“香草”。 目前在项目中创build模块时,您必须要求使用相对或绝对path,例如在以下目录中。 project/ ├── index.js ├── lib/ │ ├── network/ │ │ request.js │ │ response.js ├── pages/ │ ├── foo.js 考虑到我们在index.js中,我们会通过导入请求 var networkRequest = require('./lib/network/request.js') 如果我们在foo.js,我们会通过导入请求 var networkRequest = require('../lib/network/request.js') 我想知道的是,如果有什么办法,可以在Package.json或其他地方设置一个本地别名: localPackages = [ { name: 'network-request', path: './lib/network/request.js' } ]; 你可以做的 var networkRequest = require('network-request') 从任何文件,它将提供正确的path。

Nodejs,需要模块从一个函数内,或在脚本的顶部。 哪个更适合自定义模块?

我正在写一个自定义脚本,其中包含我所有常用的设置和function。 其中一个函数需要一个时间戳,并使用Moment返回一个自定义格式的人类可读date。 我的自定义脚本位于node_modules文件夹settings.js ,例如文件名为settings.js 。 现在,我知道我可以将其包含在我的任何脚本的顶部 var settings = require('settings.js); 并得到我的function settings.timestamp_to_date(timestamp,function(date){console.log(date}) 我不知道的是包含附加模块(时刻和时刻)的最佳位置。 我现在在函数调用他们,所以他们不加载每个需要settings.js文件的应用程序。 我的想法是,它不会将该模块加载到不需要它的应用程序的内存中。 这让我想到,对于那些可能会使用这个函数的应用程序来说,它会在每次运行函数时都要求模块,这本身就是一个糟糕的select。 哪一个是最好的select,通过将所有的函数放在一个单独的文件中,然后只在某些应用程序需要时才加载所需的函数模块,从而完成我之后的工作? 如果这意味着在每个应用程序中,我必须声明包含settings.js之前要使用的模块,那么这并不理想。 我的应用到目前为止只是为自己学习应用。 我现在创造的东西都不会被很多人使用。 低使用率应用程序的最佳select是什么,在生产环境中可能得到高度利用的应用程序的最佳select是什么?

从node.js中的另一个自定义模块访问自定义模块的正确path表示法

我有我的node.js项目中的一些自定义类模块。 是否可以从另一个自定义模块访问自定义模块? 如果是这样,我可以使用什么path符号? 我似乎无法想出一个不会产生错误: Error: Cannot find module 'someModules/DB' 。 我可以导出和require('./someModules/DB')从我的根index.js脚本罚款。 但它不能从一些someModules/Table 。 这是我的目录结构: project root -index.js -someModules –DB —index.js –Table —index.js 我想从Table / index.js访问DB / index.js。 我尝试了一些明显的事情 const DB = require("/someModules/DB"); const DB = require("./someModules/DB"); const DB = require("../someModules/DB"); const DB = require("someModules/DB");

Node.js:需要本地人

我想要的是 是否有可能将本地人传递到所需的模块? 例如: // in main.js var words = { a: 'hello', b:'world'}; require('module.js', words); // in module.js console.log(words.a + ' ' + words.b) // –> Hello World 我这样问是因为在PHP中当你需要或者包含的时候,包含其他文件的文件会inheritance它的variables,这在某些情况下非常有用,如果在node.js中也可以这样做,我会很高兴。 我已经尝试过,没有工作 var words = { a: 'hello', b:'world'}; require('module.js', words); var words = { a: 'hello', b:'world'}; require('module.js'); 这两个都给ReferenceError: words is not defined在module.js调用ReferenceError: words is not […]

要求文件内的请求

我正在玩Node.js,我想知道我在做什么可以被认为是最佳的做法,我还有很多东西要学。 我试图通过创build更多的JSON文件,然后根据HTTP标头(语言)加载实现多语言布局。 我正在做的是这样的: exports.index = function(req, res){ try { var words = require('../languages/' + req.headers["accept-language"].substr(0, 2).toLowerCase()); } catch(err) { console.log("no language found – falling back to english"); var words = require('../languages/en'); } res.render('index', { language: words }); }; 现在,我很确定这里有什么问题。 因为我认为要求只应该做一次,而且我要求每一个要求。 但是,我想不出任何其他的方式,因为我需要访问请求头中的语言。 有任何想法吗? 提前致谢。