Articles of javascript

承诺处理 – 更新数据库条目,如果存在

我坚持对Promises的新挑战。 目标:仅在P_KEY存在的情况下更新数据库条目。 当前的数据库是通过模块公开的,模块已经为db获取和放置方法。 双方都回诺言。 做法: API调用节点js上具有ID和值集的更新方法处理程序(json) 在post方法的处理程序中调用get db模块的方法检查promise成功的值是否为空,如果是则返回false否则为true。 如果属实; 数据存在调用db模块的方法。 但不知何故数据总是返回false。 即使db入口已通过db api。 /** Function to check if p_key exist*/ function checkIfPKExists(idVal) { pkdb.get(idVal).then(function(value) { if(value) { return true;} else { return false; } }, function(err) { console.log(err); return false; }) } /** UPDATE METHOD **/ var ch = checkIfPKExists("p_k"+req.body.id); if(!ch) { res.send("pk does not […]

在将string转换为对象时获取syntaxError意外的令牌

我想转换提供的对象数组中的string var string = "[{cpu:100,memory:47,freeDisk:83,networks:[{name: \"ctm-4680b9b244c\", status : \"active\"},{name: \"ctm-c2f21106323\", status : \"active\"},{name: \"ctz-1977174d443\", status : \"active\"},{name: \"ctz-1b49d8ccfa5\", status : \"active\"},{name: \"ctz-28c7ceda9ce\", status : \"active\"},{name: \"ctz-3337b7f252a\", status : \"active\"},{name: \"ctz-bbe9792d0c7\", status : \"active\"},{name: \"ctz-d400e32307d\", status : \"active\"},{name: \"ens33\", status : \"active\"},{name: \"lo\", status : \"active\"},{name: \"ctz-9bf91c248f9\", status : \"inactive\"}],infrastructurename:\"ct-colormaster-host\", infrastructurestatus:\"running\", infrastructureuptime: \"Sat Aug 12 00:00:00 […]

无法使用快递中间件创buildcookie

每当新用户注册我的应用时,我都会尝试创build一个cookie,表示这是他们第一次login。 我发现这个线程 ,大致遵循它,但它不工作。 这是我现在的代码: // setting up the middle ware export default function () { return function () { const app = this app.use(cookieParser()) app.post('/app/signup/end', [firstTimeCookie(app), signUp(app)]) } } 不工作的中间件是firstTimeCookie() , signUp()工作正常。 // in firstTimeCookie: export default function (app) { return function (req, res, next) { const cname = 'FIRST_SIGNUP' const cvalue = true var […]

再次关于asynchronous/在JavaScript中等待

我现在的function如下所示: var GetImages = async() => { var images_array = []; await request ({ url: `https://api.tumblr.com/v2/blog/nameblog/posts?api_key=${process.env.TUMBLR_KEY}&type=photo`, json: true }, (error, response, body) => { if(error){ console.log('Unable to connect'); }else if(body.meta.status === "ZERO_RESULTS"){ console.log('Uable to find that address.'); }else if(body.meta.status === 200){ body.response.posts.forEach(function(obj) { obj.photos.forEach(function(photo) { if(photo.original_size.width>photo.original_size.height){ images_array.push(photo.original_size.url); console.log("dawdaw"); } }); }); //callback(images_array); } }); return […]

如何发送JSON中的ArrayBuffer从js客户端到nodejs服务器?

我想发送数据的typesArrayBuffer在JSON到我的服务器使用socket.io像这样: socket.emit('record', { name: myUsername + '.wav', data: data //arraybuffer }); 在服务器端,当我在套接字中收到“logging”事件时,我从JSON获取数据并将其保存在名称文件中,如下所示: socket.on('record', function(message){ var fileWriter = new wav.FileWriter(message.name, { channels: 1, sampleRate: 48000, bitDepth: 16 }); message.data.pipe(fileWriter); }); 我使用npm的require('wav') & require('stream')包。 问题是我的服务器崩溃message.data.pipe(fileWriter); 有这个错误: TypeError: message.data.pipe is not a function 我究竟做错了什么? 我不能在socket.io中像这样发送ArrayBuffer吗?

获取__dirname指向文件夹path,而不是实际连接的文件夹path

如何让__dirname指向保存的文件夹path,而不是使用npm链接的符号链接文件的实际path。 脚本 文件夹设置 project | —- moduleA | | | —- moduleA.js | —- app | — node_modules cd project/moduleA npm link cd project/app npm link moduleA 在moduleA.js里面 __dirname -> /project/moduleA 但是,预期的行为是 __dirname -> /project/app/node_modules/moduleA 因为npm链接会创build一个sym-link,将链接的模块插入到node_modules文件夹中,从而模拟直接安装模块的体验。 我怎样才能让__dirname指向保存的path,而不是模块所在的真实path? 注意:–preserve-symlinks命令行选项不会影响__dirname的值

ctx.render不会redirect页面

我很确定这是因为ctx.render函数只是为了渲染页面,但我不知道该怎么做才能做我想做的事情。 基本上,我试图redirect用户到用户的mypagelogin后,在标题中的jwt令牌,所以我用axios发送请求到服务器,服务器路由器function呈现dynamicpug文件与给定的数据。 我想把jwt数据放到帕格文件中,但是当我发送请求的时候,页面只是刷新自己,实际上并没有redirect到mypage。 这是代码 客户 try { let res = await axios(loginOpt) await store.set('jwtToken', res.data.token) let mpOpt = {headers: {"Authorization": 'Bearer ' + store.get('jwtToken')}} axios.get(`/u/${payload.email}`, mpOpt) } catch (e) { console.error("failed to send login request", e) } 路由器 router.get('/:userName', async (ctx, next) => { console.log("jwt TOKEN IS", ctx.header.authorization) let renderData = { userName: userName, profilePic: […]

Npm安装总是返回`代码ECONNREFUSED`错误的所有pakcages

`npm ERR! code ECONNREFUSED npm ERR! errno ECONNREFUSED npm ERR! FetchError: request to http://registry.npmjs.org/body-parser failed, reason: connect ECONNREFUSED 127.0.0.1:3000` 我尝试了proxy settings , registry set commands ..但仍然没有用.. 我使用节点js最新版本..我的应用程序监听端口是3000 我试过npm config List ..有没有错误的configuration? `; cli configs metrics-registry = "https://registry.npmjs.org/" scope = "" user-agent = "npm/5.3.0 node/v8.1.4 win32 ia32" ; userconfig C:\Users\JANEN\.npmrc https-proxy = "http://proxy.company.com:8080/" proxy = "http://proxy.company.com:8080/" […]

只在socket.io上“轮询”

我有两个应用程序在openshift v2托pipe,都有相同的代码 ,第一次使用Node.js 0.10和socket.io完美的作品。 第二个应用程序使用Node.js 8.2.1,但socket.io不起作用,我得到了与在这些其他网站相同的错误: 客户端在socket.io上接收轮询 Socket.io无法连接,请求“投票” Socket.io连接恢复到轮询,从不触发'连接'处理程序 我试图做出答案,但没有结果,如果代码在我的两个应用程序是相同的。什么可以失败? 有必要对新版本的Node.js进行一些更改? 这是我的应用程序中的相关代码和有关它的信息: 这两个应用程序在8080或3000端口上运行完美。 服务器 App.js var fs = require('fs'); var express = require('express'); var app = express(); var server = require('http').Server(app); var bodyParser = require ('body-parser'); var jwt = require('jsonwebtoken'); var io = require('socket.io')(server); var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1'; var server_port = process.env.OPENSHIFT_NODEJS_PORT || […]

Node.js / Mongoose:发送信息到一个函数,并识别信息来操作

我有一个应用程序,它向3个不同的API REST服务器发出请求,收集并处理收到的对象信息,并使用mongoose的模型发送信息不同的Mongo集合(每个API REST一个)。 我的目标是在发送到MongoDB之前或同时(或之后)对不同的信息集进行操作。 下面是一个包含两个具体对象的例子,它们被检索并发送到数据库: Object1: { "name": "X", "a": 10, "b": 9, "n": 1502642712481, "iname": "ix", "_id": "59907f34040eb562d8d11d8c" } 对象2: { "name": "Y", "n": 1502642712552, "iname": "ix", "_id": "59907f34040eb562d8d11d8d", "b": "10", "a": "9", } 这些都有自己的模型,并正确插入到MongoDB保存,我想比较每个对象的“a”和“b”键(FYI: "iname"是一个共同的关键对象和"n"是在请求被返回时创build的时间戳)。 我想对'a'和'b'做的操作types是相对基础的math(目前): ax – ay和bx -by 任何想法,我怎么能做到这一点? 现在将每个对象保存到数据库的代码嵌套在一个无限循环中,如下所示: async function loopY() { setTimeout( async function () { var list […]