标签: node-modules

module.exports在node.js应用程序中冲突/被覆盖

我想我很难误解如何使用module.exports.似乎每个模块都覆盖了最后一个模块吐出的内容.

app.js:

var express = require("express")
    , app = express()
    , routes = require('routes')
    , server = app.listen(1337, "0.0.0.0")
    , io = require('socket.io').listen(server)
    , redis = require("redis")
    , client = redis.createClient();
Run Code Online (Sandbox Code Playgroud)

var moduleA = require("./moduleA")(io, client); (需要传递socket.io和redis客户端)

var moduleB = require("./moduleB")(io, client); (相同)

moduleA.js:

module.exports = function(io, client){ 
    this.test = 'foo';
    return this;
};
Run Code Online (Sandbox Code Playgroud)

moduleB.js:

module.exports = function(io, client){ 
    this.test = 'bar';
    return this;
};
Run Code Online (Sandbox Code Playgroud)

回到app.js:

console.log(moduleB.test);(打印"酒吧")

console.log(moduleA.test);(打印"酒吧") …

javascript node.js express node-modules

3
推荐指数
1
解决办法
1636
查看次数

通过使用模块node-config更改环境变量来更改运行时的配置

我正在尝试使用node-config模块在运行时更改我的配置的某些参数(基本上是日志记录级别).在官方文件中说:

环境变量可用于覆盖文件配置.以$ CONFIG_开头的任何环境变量都将设置到CONFIG对象中.

我已经检查过,当服务器启动时这是真的,但一旦启动它似乎不起作用.(更改环境变量时,永远不会调用watch函数的处理函数,这与runtime.json文件中的更改或直接更改配置变量不同).

我目前正在观看整个CONFIG对象:

var CONFIG = require('config');
CONFIG.watch( CONFIG , null , function(object, propertyName, priorValue, newValue){
    console.log("Configuration change detected");
});
Run Code Online (Sandbox Code Playgroud)

有谁知道这是否可能?

node.js node-modules

3
推荐指数
1
解决办法
2265
查看次数

从npm安装node_module但它没有安装自己的node_modules - package.json

我刚创建了一个node_module,其依赖关系为'validator'.但是当我从npm安装它时,它不会在自己的node_module目录中安装'validator'模块.我不明白为什么,但这是我第一次创建自己的节点模块.

的package.json:

{
  "name": "validator-extended",
  "description": "String validation and sanitization based on validator.js",
  "version": "1.1.0",
  "homepage": "https://github.com/Ayolan/validator-extended",
  "keywords": [
    "validator",
    "validation",
    "validate",
    "sanitization",
    "sanitize",
    "sanitisation",
    "sanitise",
    "assert",
    "extend",
    "extended"
  ],
  "author": "Vadorequest <https://github.com/Vadorequest>",
  "main": "app.js",
  "bugs": {
    "url": "https://github.com/Ayolan/validator-extended/issues"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/Ayolan/validator-extended.git"
  },
  "engines": {
    "node": ">= 0.8"
  },
  "licenses": [
    {
      "type": "MIT",
      "url": "https://github.com/Ayolan/validator-extended/raw/master/LICENSE"
    }
  ],
  "dependencies": {
    "validator": "~3.1"
  }
}
Run Code Online (Sandbox Code Playgroud)

我还有一个.npmignore文件:

########################
# node.js / npm
########################
lib-cov
*.seed
*.log
*.csv
*.dat …
Run Code Online (Sandbox Code Playgroud)

dependencies node.js node-modules

3
推荐指数
1
解决办法
943
查看次数

NodeJS-为什么npm不共享依赖项?

即使我构建package.json并运行

npm install ./

npm安装依赖项的依赖项,即使它完全相等。

例如)ExpressJs 4.0.0-rc4 node_modules / cookie === cookie-parser node_modules / cookie

当nodeJs加载文件时,将按文件缓存它。因此,如果npm不共享依赖项,则同一模块可以被解析几次,并使用更多的内存。

node.js npm node-modules

3
推荐指数
1
解决办法
1842
查看次数

hapi.js插件和nodejs模块之间有什么区别

刚开始熟悉Hapi.Hapi使用插件为您的应用程序添加组件.我很难理解为什么我会使用插件,当我可以做以下事情:

var lib = require('whatever lib from npm');
Run Code Online (Sandbox Code Playgroud)

两者有什么不同?

node-modules hapijs

3
推荐指数
1
解决办法
1714
查看次数

返回来自模块的nodejs流输出以表达路由

我只是开始nodejs / express开发并绊倒流。这是场景:

我想读取文件,处理内容(全部在模块中),然后返回处理后的输出,以便可以显示它。我该如何实现?

这是一些代码:

app.js

var express = require('express');
var parseFile = require('./parse_file.js');

app.get('/', function(req, res, next){
  parsedExport = parseFile(__dirname+'/somefile.txt');
  res.send(parsedExport);
});

server = http.createServer(app);
server.listen(8080);
Run Code Online (Sandbox Code Playgroud)

parse_file.js

var fs = require('fs');

var ParseFile = function(filename) {
    var parsedExport = [];
    rs = fs.createReadStream(filename);
    parser = function(chunk) {
        parsedChunk = // Do some parsing here...
        parsedExport.push(parsedChunk);        
    };
    rs.pipe(parser);
    return parsedExport;
};

module.exports = ParseFile;
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我展示一个有效的示例,该如何实现?或指出正确的方向?

node.js express node-modules

3
推荐指数
1
解决办法
2762
查看次数

节点模块推送到GitHub

我正在尝试将我的项目推送到github和heroku.由于我在我的应用程序中使用nodejs,因此我有node_modules.在我提交之前,我创建了一个名为.gitignore忽略节点模块的文件.

在文件中我添加了node_modules并尝试从comandline/Terminal推送到GitHub.我没想到节点模块会被推送,但它们最终出现在回购中.我有什么方法可以遵循,我在这方面需要帮助; 谢谢!

以下是我解决问题的方法

- $ git rm -r --cached node_modules 将node_modules /添加到.gitignore文件 - $ git commit -m "remove the ignored directory node_modules" 然后 - $ git push origin master ,如果刷新GitHub页面,您将看到node_modules消失.

git github gitignore node-modules

3
推荐指数
1
解决办法
3518
查看次数

npm5 package-lock.json不同机器上的不同条目

我们的项目使用npm进行包管理.从npm 4升级到npm 5后,我们决定选择加入新版本package-lock.json.

提交并npm install在其他计算机上执行后,我们发现了指定版本和已解决条目的方式的差异:

1)package-lock.json依赖项的示例,version编码为URL:

"jspm": {
  "version": "https://registry.npmjs.org/jspm/-/jspm-0.16.52.tgz",
  "integrity": "sha1-axhH4I8TGsm9JnzFiXSXmudnXS4=",
  "dev": true
},
 "systemjs": {
  "version": "https://registry.npmjs.org/systemjs/-/systemjs-0.19.46.tgz",
  "integrity": "sha1-wEV0szNfBSoOPHoA7kGIxuTB444=",
  "dev": true
},
Run Code Online (Sandbox Code Playgroud)

2)package-lock.json依赖项的例子versionresolved属性:

"jspm": {
  "version": "0.16.53",
  "resolved": "https://registry.npmjs.org/jspm/-/jspm-0.16.53.tgz",
  "integrity": "sha1-VvNR9JWUyJM+XgG2UUWsrr/PtZ4=",
  "dev": true,
  "dependencies": {
    ...
  }
},
"systemjs": {
  "version": "0.19.46",
  "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-0.19.46.tgz",
  "integrity": "sha1-wEV0szNfBSoOPHoA7kGIxuTB444=",
  "dev": true
},
...
Run Code Online (Sandbox Code Playgroud)

除了不稳定的package-lock.json之外,我们的构建服务器在安装第一个示例时遇到了问题.

npm node-modules package.json package-lock.json

3
推荐指数
1
解决办法
1174
查看次数

brew uninstall节点错误高sierra

我尝试用brew卸载节点,但我遇到了以下问题,我似乎没有解决.

当我运行时brew uninstall node,我收到以下错误消息:

Uninstalling /usr/local/Cellar/node/10.5.0_1... (7,893 files, 34.2MB)
Error: Directory not empty @ dir_s_rmdir - /usr/local/Cellar/node/10.5.0_1
Run Code Online (Sandbox Code Playgroud)

不知道如何解决这个问题?我可以删除这个文件吗?

感谢您的任何帮助.

homebrew node.js node-modules

3
推荐指数
1
解决办法
1112
查看次数

npm链接本地模块后,npm安装导致错误:找不到

模块A的package.json将模块B列为依赖项

  "dependencies": {
    "@mynamespace/module-b": "^0.0.1",
Run Code Online (Sandbox Code Playgroud)

模块B是本地模块,已成功从模块A与链接npm link。编译/运行一切顺利。

但是,当我尝试在模块A中安装任何新模块npm install something或只是运行时,npm install或者npm uninstall something总是从npm收到错误消息,即找不到本地模块(npm链接)。

C:\web\module-b>npm install
npm ERR! code E404
npm ERR! 404 Not Found: @mynamespace/module-b@^0.0.1
Run Code Online (Sandbox Code Playgroud)

我按照这里的建议检查了两个模块中的main属性package.json。有几个类似的问题,但似乎没有一个完全是这个问题或给出了可行的解决方案。

现在,我手动从package.json中删除所有提及的链接模块,然后运行npm命令,然后将它们添加回package.json中。

我正在使用npm 6.1.0

编辑:嗯,这可能很关键吗?@ mynamespace / module-b在NPM注册表中尚不存在,仅在本地

npm node-modules npm-link

3
推荐指数
2
解决办法
2253
查看次数