Tag: 函数

错误:无法读取未定义的属性'get' – node.js中的HTTPS

我有一个构buildd3-Graph的app.js 在这个图表中有一个Update-Button 。 当button被点击时,我想调用另一个node.js文件data.js的函数。 Update-Button looks like this: d3.select("#updatebutton").on("click", function(e) { try{ getJSON(); } catch (e) { alert('Error: ' + e); } window.parent.location = window.parent.location.href; }); 如果我点击Update-Button ,抛出错误: 错误:无法读取未定义的属性'get' get被引用到https请求中,在data.js执行。 执行如下: var https = require('https'); function getJSON() { var req = https.get(options, function(response) { // handle the response var res_data = ''; response.on('data', function(chunk) { […]

如何正确使用node.js中的asynchronous函数的承诺?

我在节点中有一个读取文本文件的asynchronous函数,把整个东西放到一个string中,将string拆分成每一行,把它们放到一个数组中,随机返回一个。 在这里我已经实现了一个新的Promise函数来处理它: exports.readTextFileAndReturnRandomLine = function readTextFile(file) { //reads text file as string, splits on new line and inserts into array, returns random array element return new Promise((resolve, reject) => { var fs = require('fs'); var textFile = fs.readFile(file, 'utf8', (err, data) => { if (err) { return reject(err); } else { var array = data.toString().split("\n"); […]

Node.js – 从函数返回数组

我有一个函数返回一个使用方法myArray.push({“key”:value})创build的数组 在路由器文件中,我做了这个,但它没有工作: router.get('/:ID', function(req, res, next) { var myRenderArray = []; myRenderArray = auxFunctions.myArrayFunc(req.params.ID); res.render('myView', {title: 'title', myRenderArray}); }); 如果我把整个函数放在路由器文件中,并改变res.render('myView', {title: 'title', myRenderArray});的return语句, 有用! 恢复function代码: module.exports.myArrayFunc = function myArrayFunc(ID){ var myArray = []; var id = req.params.ID; var req1 = new dbConfig1.Request(); var req2 = new dbConfig2.Request(); req1.query(query1('foo', ID)) .then(function (array1) { req2.query(query2('foo', id, array1[0].fooId)) […]

将对象从SQL查询函数传递给一个单独的函数

我是新来的节点和承诺。 我有两个文件 – server.js和db.js server.js db.js作为模块导入。 我从db.js模块中的SQL数据库中获取一些数据,并试图将这些数据传递给server.js的函数。 我已经成功从数据库中提取数据,但是当我尝试将它传递给server.js的函数时,它只返回一个undefined值。 这是代码 server.js const db = require('./db.js'); app.post('/api/trigger-push-msg/', function (req, res) { return getSubscriptionsFromDatabase() .then(function(subscriptions) { // Do something }); }); function getSubscriptionsFromDatabase() { return new Promise((resolve, reject) => { let subscriptions = db.getSubscriptions(); console.log(subscriptions); // this only prints "undefined" if (subscriptions != undefined) { resolve(subscriptions); } else […]

Node.js mysql包中的转义函数是否足够安全地查询mysql数据库(不使用预处理语句)?

根据Node.js的mysql 包文档 : 为了避免SQL注入攻击,在SQL查询中使用数据之前,应该始终转义任何用户提供的数据。 你可以使用mysql.escape(),connection.escape()或pool.escape()方法。 我找不到任何使用mysql准备语句的文档/参考,除了在引用中使用'?' 字符。 它声明如下: 或者,你可以使用? 字符作为您想要转义的值的占位符… 这看起来与MySQL中的预处理语句类似, 但是它实际上在内部使用相同的connection.escape()方法。 从我与其他开发人员谈话的经验来看,开发人员社区中的普遍共识是准备好的语句是从Node.js执行mysql查询的唯一安全方式,但是,您可以使用mysql包来看到,没有明显的支持准备好陈述。 但是,表明他们避免SQL注入的方法是通过使用转义函数。 我的问题: mysql包中的转义函数是否足够安全地查询mysql数据库(不使用预准备语句)?

node.js fs.readdir不显示目录中的任何文件

我知道这可能是一个愚蠢的问题附近,但我砰的一声,我根本无法解决问题,我自己或在老谷歌的帮助下。 我有一个快速的4应用程序,其中在一个路由从脚本执行函数列出所有可用的json文件从数据目录。 我的目录结构是这样的: / – app root directory with app.js /routes – routes_tags.js is stored here /modules – tags_list.js is stored here /data/rfidTagData – directory that holds json files app.js需要routes_tags.js: var tagRoutes = require("./routes/routes_tags.js")(app); routes_tags.js需要tags_list.js: var taglist = require('../modules/tags_list.js'); 所以app.js需要routes_tags.js,而route_tags.js又需要路由app.get(/ tags)中的tags_list.js。 app.get("/tags", function(req, res) { 下面你会看到我的代码tags_list.js var path = require('path'); var fs = require('fs'); //var […]

哪一个更有效维护:JavaScript函数引用或布尔+ IF条件?

设想一个任务,其中有一个具有type属性的资源数组。 基于这种type ,需要执行不同的function。 实现这一点的一种方法是通过多个if / else或switch / case条件。 // at run time (run many times) if (resources[ix].type == 'TYPE_ONE') { runFuctionOne(); } else{ runFuctionTwo(); } 另一种方法是维护一个像execute这样的属性,它将被分配一个可以满足资源type的函数。 那么你将不需要if / else条件,并可以直接执行它的function,如: // at assign time (run once) if (resources[ix].type == 'TYPE_ONE') { resources[ix].execute = runFunctionOne; } else{ resources[ix].execute = runFuctionTwo; } // then at run time (run […]

我如何做一个函数的asynchronous工作,然后完成后从该函数返回一个值?

我正在使用一个库,需要我通过一个“validation”function。 在这个函数中,我需要validation一些input,如果通过则返回true否则返回false 。 问题是,我需要检查用户是否存在数据库中的这个validation函数和mongoose调用callback与结果。 如果我在callback中返回,它只是从callback函数而不是我的validation函数返回。 … validate: function (username) { User.findOne({ username: username }, function (err, user) { if (user) // User exists so we should return false from the validate function else // User does not exist so we should return true from validate. }); } 我正在尝试使用asynchronous库来解决这个问题,但asynchronous时它也会调用一个callback! 任何帮助表示赞赏。

在私有函数中应用variables – Node.js

我正在使用蓝鸟的Node.js,并试图使用defaultMySQLOutput作为输出的模型,例如: function defaultMySQLOutput(err, result){ return err ? reject(err) : resolve(result); } function something(){ return new Promise(function(resolve, reject){ mysql.query(q, defaultMySQLOutput); }); } 但是这不起作用。 错误说“解决不确定”,但是当我这样做 mysql.query(q, function(err, results){ resolve(results); }); 有用。 我也试过了, defaultMySQLOutput.call(this, err, results) 和 (new defaultMySQLOutput) 但无法做到这一点。 有没有办法做到这一点? 任何参考将不胜感激。 提前致谢。

http请求函数不会返回结果

我正在build立一个Express.js的服务器,我想'GET'请求'/'返回一个函数的结果。 该函数正在从新闻API获取请求。 当我调用'/'时,函数被触发,结果('故事')被logging在控制台中,但是对'/''GET'请求的响应没有被发送。 我曾尝试将“返回”声明放在几个不同的地方,但仍然无效…任何想法都将得到巨大的赞赏! 谢谢! app.js var express = require('express'); var app = express(); var stories = require('./stories.js') app.get('/', function(req, res){ var returnedStories = stories.searchStories(); res.send(returnedStories); }) var server = app.listen(3000, function () { var host = server.address().address; var port = server.address().port; console.log('going live on port', host, port); }); stories.js var request = require('request'); function […]