Tag: 节点模块

Node.js共享对象或单例以确保单一来源的真相

我正在编写一个Node应用程序,该应用程序将根据从后端数据库中获取的configuration生成一个JMS队列订阅数组。 初始化后,我将从后端检索当前状态,但是之后我需要支持对Node服务器的入站API调用,以实时添加远程订阅(然后我将更新存储在后端的列表)。 在整个应用程序中只能有一个这个订阅数组的实例,并且它必须是真实的来源。 例: 在初始化,我会从API获得: { "amysCar": { "name": "2016 Lamborghini Gallardo LP 550-2", "queue": "/queues/amysracingstats" }, "bobsCar": { "name": "1967 Ford Mustang Shelby Shelby GT500", "queue": "/queues/bobsrestorationproject" } } 那么让我们说,鲍勃决定他不再想发布他的修复工程; 他将对节点服务器DELETE /projects/bobsCar进行API调用。 我将从队列数组中移除队列侦听器并更新后端数据库。 在实践中,我需要能够从多个控制器访问JMS队列数组,因为处理API调用的控制器与处理队列订阅的控制器是分开的。 我知道单身人士在Node中编写和pipe理是非常困难的,被人们所诟病,而且据说是完全没有必要的,因为Node.js模块caching据说只会加载一个模块的单个实例。 如果这是正确的,我可以将队列订阅数组作为私人对象存储在模块中,然后在API调用控制器中进行require 。 这是真的? 我可以使用这种能力来满足我的要求吗? 如果是这样,我将如何覆盖模块的初始化,以便我可以进行初始后端调用以获取当前状态? 我是否在意这个?

将节点模块variables注入到作用域

是否有可能使用节点模块来实现这种行为? module.js: module.exports = function () { var test.fn = function () { console.log("$test.fn()"); } var test.fn2 = function () { console.log("$test.fn2()"); } var variable = "test"; }; app.js: require("./module.js")(); test.fn(); test.fn2(); otherFunction(variable); 我不想做这样的事情$ = require("./module.js")(); $.test.fn(); $ = require("./module.js")(); $.test.fn(); 我想注入这个variables到app.js作用域没有包装variables。 编辑: 我已经结束了使用这个: module.js: module.exports = function () { eval(String(inject)); var inject = ( […]

如何从node_modules文件夹添加package.json依赖项?

我正在一个项目上工作, 我不小心删除了我的package.json文件,然后我再次使用npm init命令来创build一个新的,但我已经在我的node_modules有很多吞咽扩展… 所以,现在我怎么能再次添加这些依赖关系到我的新的package.json文件 package.json文件如何从我的node_modules文件夹中获取依赖关系列表?

https://npmcdn.com/ng2-img-cropper/index.js网站上没有“Access-Control-Allow-Origin”标头

当我在我的应用程序工作时,我开始得到这个错误: XMLHttpRequest cannot load https://npmcdn.com/ng2-img-cropper/index.js. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access. 我正在考虑是什么导致了这个错误。 我知道有一个https://npmcdn.com/ **url,所以它可能不在我的电脑,但我只是想确定。 此外,我试图直接从浏览器访问该网站,一切工作,因为它应该。 它让我回到了脚本等。这对我来说只是奇怪的,因为我开始得到这个时,我实际上在后端使用Access-Control-Allow-Origin工作,但是我试图评论一切,而且我仍然得到它。 我正在考虑发生了一些事情,因为我的.htaccess文件,我也在编辑。 我可以知道你的意见这里发生了什么? 是否有可能我的电脑或连接导致它? UPDATE 我遇到的问题是node_module ng2-img-cropper。 在我不确定这不是我的问题之前,我不想公布它。 我发现这个node_module正在使用旧的npmcdn.com网站来加载它的文件。 它总是调用npmcdn.com将其redirect到unpkg.com。 接下来,如果您在npmcdn.com上尝试GET请求,它会将您redirect到unpkg.com,即使它提供了所有数据,并设置了标头,但它可能会检查npmcdn.com网站的标头,米无法抓住它。 任何想法如何解决这个问题? 我正考虑在npm中更改configuration,以便每个node_module都会调用unpkg.com,而不是旧版的npmcdn.com。 但是在哪里可以find这个configuration文件?

Webpack:Bundle.js – 未捕获的ReferenceError:进程未定义

这是我的webpack.config.js "use strict"; module.exports = { entry: ['./main.js'], output: { path: __dirname, filename: 'bundle.js' }, module: { loaders: [ { test: /.js?$/, loader: 'babel-loader', exclude: /node_modules/, query: { presets: ['es2015', 'react'] } }, {test: /\.json$/, loader: "json"}, ] }, externals: { React: 'react', }, target: "node", }; 和Main.js import React from 'react'; import ReactDOM from […]

TypeError:nodemailer.createTransport不是一个函数

我正在尝试在我的nodejs应用程序中实施nodemailer来发送电子邮件。 这是我的代码 var express = require('express'); var nodemailer = require('node-mailer'); var app = express(); app.post('/contact/send', function(req, res) { var transporter = nodemailer.createTransport({ service: 'Gmail', auth: { user: 'myEmailIdHere', pass: 'myPassword' } }); var mailOptions = { from: 'myName <myEmailIdHere>', to: 'myOtherEmailIdHere', subject: 'Website Submission', text: 'You have a submission with the following details… Name: ' […]

在摩卡testing中没有发现柴的出口

我已经创build了简单的摩卡testing。 当使用Node“assert”模块时,它完美地工作。 我从命令行(Mocha作为全局节点模块安装)运行它: $ mocha myTest.js ․ 1 test complete (6 ms) 该脚本如下所示: var assert = require("assert") describe('Array', function(){ describe('#indexOf()', function(){ it('should return -1 when the value is not present', function(){ assert.equal(-1, [1,2,3].indexOf(5)); assert.equal(-1, [1,2,3].indexOf(0)); }) }) }) 那么,我试图添加柴而不是断言库。 我先安装它: npm install chai 所以,在我的项目中创build了目录node_modules。 太好了。 然后,我改变了脚本使用柴: var chai = require("chai"); describe('Array', function(){ describe('#indexOf()', function(){ it('should […]

在运行时确定节点模块的位置

我正在构build一个基本上是node.js模块的工具。 这个工具可以全局安装(使用-g选项)模块中有几个静态文件来生成报告。 如果模块是在本地调用的,我可以使用相对path./node_modules/<module>/static/filename来引用静态文件。 但是当这个工具被作为一个命令调用时,我该如何引用这个静态文件? 我怎样才能确定工具是作为本地模块还是作为命令调用?

在node_module里手动创build一个目录可以吗?

在node_module手动创build一个目录并放置一些模块可以吗? 例如,我可能想创build一个名为models node_modules里面的node_modules并把我的模型放在那里,所以我可以做 var Person = require("models/person"); 我知道它工作正常,但如果我这样做,这被认为是不好的做法?

Nodejs模块导出混乱

我有一个与module.exports混淆。 据我module.exports是暴露给其他模块的对象, exports=module.exports={} 但是在node.js的摩根包的index.js中我find了这个。 module.exports = morgan module.exports.compile = compile module.exports.format = format module.exports.token = token morgan , compile , format和token都是function。 你能解释一下这里发生了什么? 一个函数(摩根)如何分配到module.exports? 第一行执行后,module.exports是一个函数而不是一个JSON对象?