Tag: 范围

快速:错误传递res.json作为参数

我有这样的东西: … var someService = function(next) { var result = {"some": "json"}; next(result); }; app.get('/someRoute', function (req, res) { someService(function (result) { res.json(result); }); }); … 我想改变这个: app.get('/someRoute', function (req, res) { someService(res.json); }); 但它给了我: TypeError:无法在某个服务上调用res.json(… / node_modules / express / lib / response.js:185:22)处未定义的方法“get” 我想这个问题是关于范围的。 它是什么?

angular度$范围数据不会更新

我正在写一个连接到第三方API的应用程序。 api使用auth令牌系统,所以我有一个asynchronous节点js函数,它首先请求令牌,然后使用该令牌来检索一些数据。 问题是,当数据更改angualr $范围不会更新,所以即使在节点js api调用抛出错误页面将显示相同的数据。 通过代码稍微运行一下。 get-salesLead-data.js有一个Async瀑布函数,它首先使用http PUT调用第三方rest api并返回一个auth令牌。 然后将这个令牌传递给Async水的第二个函数,然后使用这个函数进行一个http GET请求来获得销售线索数据。 这里是Node Async API调用。 **get-saleLead-data.js** // app/get-SalesLead-data.js // modules ================================================= var http = require('http'); var express = require('express') var async = require('async'); module.exports = function(app) { Using async to preform async api calls and passing data between them async.waterfall([ // First function is requesting the […]

Node.js中process.emit的事件范围

我有代码来发送这样的事件: process.emit('event', event); 我想听听这样的事件: process.on('event', function(event) { //HANDLING LOGIC }); 当文件位于同一个文件夹时,它工作正常。 当我在其他文件夹中find侦听器时,它不会被触发。 什么可以成为这个和我可以处理它的根源? 编辑: 实际的问题只是一个包含事件处理的文件丢失公开。 对我感到羞耻。

在函数内部返回真假,我有点困惑

我有这个function,例如: app.get('/', function(req, res) { var token = req.query.token; if(!token) { res.render('auth'); // Authentication } else { authorizedUsers.forEach(function(user) { if(user.id == token) { console.log('found, nickname: ' + user.nickname); return true; } }); console.log('not found'); return false; } }); 基本上它是遍历的authorizedUsers数组,并寻找entry.id等于tokenvariables的条目。 我想要做的是,如果find,返回true,并停止执行其余的app.get('/')…块。 如果没有find,显然forEach循环已经经历了所有的条目,并最终执行到“not found”的打印并return false; 。 对于我当前的代码,即使find一个条目,执行继续,我仍然得到“未find”日志。 我错过了什么? 为了简化事情,我想要做的是: 循环遍历所有授权的用户条目,将entry.id与令牌variables进行比较。 如果find,打印“find”到控制台并停止执行。 如果找不到,则在控制台上输出“not found”并停止执行。 谢谢。 编辑 迈克尔的解决scheme,这是我的工作代码: app.get('/', […]

节点 – this.func()不是一个函数

function Job(name, cronString, task) { "use strict"; this.name = name; this.cronString = cronString; this.isReady = false; this.task = task; } Job.prototype.performTask = (db, winston) => { "use strict"; const Promise = require("bluebird"); let that = this; return new Promise((resolve, reject) => { let output = ""; let success = true; try { output = that.task(); […]

如何调整while循环中的variables作用域以匹配CoffeeScript中的所有正则expression式?

我在coffeescript循环中遇到了一些麻烦。 原来的function如下, 来源是这个答案 : // Return all pattern matches with captured groups RegExp.prototype.execAll = function(string) { var match = null; var matches = new Array(); while (match = this.exec(string)) { var matchArray = []; for (i in match) { if (parseInt(i) == i) { matchArray.push(match[i]); } } matches.push(matchArray); } return matches; } 它按预期工作。 我已经通过js2coffee转换它,咖啡脚本是: # […]

将全局variables传递给JavaScript中的事件callback函数?

在下面的代码中,我试图让mydata传递给callbackmydata 。 这是一个更大的问题,我有一个示例问题。 我假设这是一个范围问题。 我的代码有什么问题和/或我应该怎么做? var EventEmitter = require('events').EventEmitter; var myevent = new EventEmitter(); var mydata = 'my data!'; function myfunc (data, mydata) { console.log(data); console.log(mydata); }; myevent.on('data', function(data, mydata) {myfunc(data,mydata)}); myevent.emit('data', "data!"); 收益: data! undefined 我希望它回来: data! my data!

除非全局声明,否则不能从事件处理函数中的函数更新variables

我有一个nodejs后端应用程序,利用mongoose的数据库连接和查询,在这种情况下,在socket.io,即io.on("connection", [callback])的事件处理程序中执行 然而,每当我在一个事件处理程序的io.on("connection") ,如socket.on("myEvent", [callback])运行一个查询时更新后处理程序中的variables – 特别是当它mongoose查询的callback。 在某些情况下,inheritance人和我试图运行的例子: io.on("connection", function(socket) { var myVar; // declare user within event handler scope socket.on("myEvent", function(m) { var query = m.myQuery; User.findOne({query}, function(err, doc) { if (err) { // error handling } else { myVar = doc; console.log(myVar); // logs whole document as it should } }); socket.on("myOtherEvent", function(m){ […]

Socket.IO范围问题(Node.JS)

我正在使用一个node.js项目,我正在使用Socket.IO,并且遇到了一个问题,我正在考虑一个范围界定问题。 这是我正在做的事情: var io = require('socket.io').listen(80); session_manager = require('./includes/session_manager'); // client joins the socket server io.sockets.on('connection', function(client) { client.on('X.Session.join', function(session_id, client) { session_manager.joinSession(session_id, function(err, session) { // do whatever }); }); // BRING IN MORE LISTENERS/EMITTERS? require('someModuleIBuild'); }); 正如你所看到的,我基本上设置了初始连接,通过一个pipe理类join一个会话(所以我知道是谁发出去哪个会话),然后我试图dynamic地引入一些自定义的东西,也将是通过套接字连接发射和侦听。 那么我如何从自定义模块的范围内引用这个当前连接呢? 我所见过的所有例子在一个文件中都具有“开”和“发”function,看起来好像很快就会失去控制。 我可能是过度思考/过分复杂(这是我的第一个node.js项目,第一个基于套接字的项目,第一个主要是JavaScript项目….等),但任何帮助,将不胜感激。

读取文件以在快速路线中使用

我正在尝试为我的应用程序实现searchfunction。 我有一个快速路线来获取传入的search条件。 这里是我的路由器文件的全部: var express = require('express'); var router = express.Router(); var bodyParser = require('body-parser'); var searchutil = require('../utils/searchhandler'); router.use( bodyParser.json() ); router.use(bodyParser.urlencoded({ extended: true })); router.post('/api/search', (req, res, next) => { var term = req.body.searchTerm; console.log(term); searchutil(); res.json({test: 'post received'}); }); module.exports = router; 这里是我的search处理程序文件正在包括在我的路由器: var fs = require('fs'); var findResults = function() { […]