Articles of json

有没有办法监视对象的变化?

相反,基于用户操作触发事件,你可以只听一个对象的变化,然后做出反应?

在Node.js POST body / json上进行RESTify

我需要帮助。 我将json数据发布到我的节点服务器。 节点服务器正在使用RESTify作为其API。 我无法从发布的数据正文获取req.body.name 。 发布的数据包含一个json主体。 其中我有钥匙,如姓名,date,地址,电子邮件等 我想从json主体中取出名字。 我正在尝试做req.body.name但它不工作。 我还包括server.use(restify.bodyParser()); 它不工作。 我能够req.params.name并分配一个值。 但是,如果我张贴JSON数据如: {'food': 'ice cream', 'drink' : 'coke'} ,我越来越没有定义。 但是,如果我要req.body ,我会得到完整的json主体。 我希望能够专门得到一个像“饮料”,并具有在console.log上显示的项目。 var restify = require('restify'); var server = restify.createServer({ name: 'Hello World!', version: '1.0.0' }); server.use(restify.acceptParser(server.acceptable)); server.use(restify.jsonp()); server.use(restify.bodyParser({ mapParams: false })); server.post('/locations/:name', function(req, res, next){ var name_value = req.params.name; res.contentType = 'json'; console.log(req.params.name_value); […]

如何使用JSON.parse反序列化嵌套的Buffer

我试图序列化和反序列化包含多个缓冲区的对象,但是从JSON.stringify()反序列化JSON.stringify()与JSON.parse()无法正确重新创build缓冲区。 var b64 = 'Jw8mm8h+agVwgI/yN1egchSax0WLWXSEVP0umVvv5zM='; var buf = new Buffer(b64, 'base64'); var source = { a: { buffer: buf } }; var stringify = JSON.stringify(source); var parse = JSON.parse(stringify); console.log("source: "+source.a.buffer.constructor.name); console.log("parse: "+parse.a.buffer.constructor.name); 给出输出: source: Buffer parse: Object 这是有道理的,因为Buffer.toJSON()的输出创build一个简单的对象,如下所示: { type: "Buffer", data: […] } 我想我可以遍历生成的对象寻找具有上述属性的子对象,并将其转换回一个缓冲区,但我觉得应该有一个更优雅的解决scheme,使用我缺less的JSON.parse()。

如何从JSON文件目录中添加许多logging到mongoDB?

我有大约一百万个JSON文件保存在目录“D:/ njs / nodetest1 / imports / source1 /”的许多子目录中,我想将它们导入到我的mongoDB数据库的集合“users”中。 以下代码正确遍历文件系统。 正如你所看到的,它读取目录中的每个项目,如果该项目是一个目录,它读取每个项目。 对于不是目录的每个项目,它在发送一个variables来保存一个函数之前对它执行一些操作。 function traverseFS (path){ var files = fs.readdirSync(path); for (var i in files){ var currentFile = path + '/' + files[i]; var stats = fs.statSync(currentFile); if (stats.isFile()) runOnFile(currentFile); else traverseFS(currentFile); } } traverseFS("D:/njs/nodetest1/imports/source1/") 接下来,我在代码上运行一些操作(见下文)。 这将读取文件,将其parsing为JSON对象,将该对象的两个属性读入variables,在variables“entry”中创build一个对象并将该variables传递给另一个函数。 function runOnFile(currentFile){ var fileText = fs.readFileSync(currentFile,'utf8'); var generatedJSON = […]

node.jsparsing请求的JSON

我发送凭证JSON对象与下面的请求到node.js: credentials = new Object(); credentials.username = username; credentials.password = password; $.ajax({ type: 'POST', url: 'door.validate', data: credentials, dataType: 'json', complete: function(validationResponse) { … } }); 在服务器端,我想加载提交的凭据到一个JSON对象进一步使用它.. 但是,我不知道如何获得需求对象的JSON … http.createServer( function (req, res) { // How do i acess the JSON // credentials object here? } ).listen(80); (我有一个调度员在我的函数(REQ,RES)进一步传递给控制器​​,所以我不想使用.on('data',…)函数)

使用节点将stringparsing为JSON会产生意外的令牌,validation器说ok

我有以下string,我想parsing为JSON: { "STATUS": [ { "STATUS": "S", "When": 1394044643, "Code": 17, "Msg": "GPU0", "Description": "cgminer 3.7.3" } ], "GPU": [ { "GPU": 0, "Enabled": "Y", "Status": "Alive", "Temperature": 70, "Fan Speed": 3089, "Fan Percent": 70, "GPU Clock": 1180, "Memory Clock": 1500, "GPU Voltage": 1.206, "GPU Activity": 99, "Powertune": 20, "MHS av": 0.4999, "MHS 5s": 0.5009, […]

为什么JSON比BSON更快?

阅读完这篇文章后 ,有一个引人注目的话: BSON也被devise为快速编码和解码。 例如,整数存储为32(或64)位整数,所以它们不需要从文本中parsing出来。 这对于小整数使用比JSON更多的空间, 但parsing起来要快得多 。 从我正在阅读的内容来看,使用BSON的全部重点是因为它对CPU的征税较less,编码/处理速度更快。 但是,我使用Node.js做了一些testing,并使用本机JSON方法将BSON吹出水面。 一些testing显示JSON速度快了3到5倍。 (当使用更多的数据types时,大约在6到8之间)。 基准代码: var bson = require('bson'); var BSON = new bson.BSONPure.BSON(); var os = require('os'); console.log(" OS: " + os.type() + " " + os.release() + " (" + os.arch() + ")"); console.log("RAM: " + os.totalmem() / 1048576 + " MB (total), " + os.freemem() […]

试图parsingJSON,而不会崩溃Node.js服务器

我正在使用支持Node.js开发一个项目,我也使用JSON通过Web套接字传递数据到客户端和从客户端。 我的问题是,如果一个无效的string被发送到服务器(很容易由用户搞乱JavaScript控制台),那么它会崩溃服务器,同时试图parsing它。 我用来防止这种情况的当前方法是使用try / catch语句。 我的问题是,是否有一个更正确的方法来检查一个string是否可以parsing? 另外,是使用try / catch语句的良好实践还是仅仅意味着debugging? 谢谢。

Node.js Restify – 简单的服务

我试图做一个存储JSONpost的服务器,到目前为止这里是服务器: var restify = require('restify'); var server = restify.createServer(); server.post('/message/', function create(req, res, next) { console.log(req.params) return next(); }); server.listen(8080, function() { console.log('%s listening at %s', server.name, server.url); }); 我正在使用Restify客户端来发布post var restify = require('restify'); var client = restify.createJsonClient({ url: 'http://localhost:8080', version: '*' }); client.post('/message/', { hello: 'world' }, function(err, req, res, obj) { console.log('%d -> […]

在Express.js中为什么res.json()之后的代码仍然执行?

在使用Express的Node中,我有一段这样的代码。 if (req.body.var1 >= req.body.var2){ res.json({success: false, message: "End time must be AFTER start time"}); console.log('Hi') } console.log('Hi2') //other codes 我期望,如果var1> = var2,响应将被发送,执行将结束。 像Java / C#中的return语句一样 但是,显然不是这样的。 响应发送后,“Hi”和“Hi2”以及之后的所有其他代码继续执行。 我想知道如何阻止这种情况发生? 另外,我想知道在什么情况下,你真的希望代码在已经发送响应之后继续执行。 干杯