Articles of json

如何使用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”以及之后的所有其他代码继续执行。 我想知道如何阻止这种情况发生? 另外,我想知道在什么情况下,你真的希望代码在已经发送响应之后继续执行。 干杯

XMLHttpRequest无法加载。 请求的资源上没有“Access-Control-Allow-Origin”标题。 因此,原产地不得进入

我使用Apache HTTPD服务器托pipe客户端文件 http://ipaddress:8010/ 和我的Nodejs服务器上运行http://ipaddress:8087 当我发送邮件请求,然后显示以下错误 XMLHttpRequest cannot load http://ipaddress:8010/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://ipaddress:8087' is therefore not allowed access. 我的客户端代码是: $.ajax({ type: "POST", url: "http://ipaddress:8010", data: {name:"xyz"}, success: function(){ alert("success"); }, dataType: "json" }); 我的服务器端是: response.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); response.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); response.setHeader('Access-Control-Allow-Credentials', true); 选项允许仍然是行不通的任何人都可以build议究竟是什么问题? 我在服务器端收到请求,但无法发送任何响应。 提前致谢 […]

Node.js undefined:1

我在执行node.js脚本时遇到以下错误,我尝试通过添加console.log()来追踪错误,但找不到任何解决scheme。 [注:我也search了其他的Stackoverflow解决scheme,但没有帮助] undefined:1 {"ydht":{"status":{"code":200,"message":"OK"},"records":[ ^ SyntaxError: Unexpected end of input at Object.parse (native) at IncomingMessage.<anonymous> (/tmp/subs_20140130/inc/getData.js:36:24) at IncomingMessage.EventEmitter.emit (events.js:95:17) at IncomingMessage.<anonymous> (_stream_readable.js:745:14) at IncomingMessage.EventEmitter.emit (events.js:92:17) at emitReadable_ (_stream_readable.js:407:10) at emitReadable (_stream_readable.js:403:5) at readableAddChunk (_stream_readable.js:165:9) at IncomingMessage.Readable.push (_stream_readable.js:127:10) at HTTPParser.parserOnBody [as onBody] (http.js:142:22) 这是我的代码: var options = { host: '<my host>', port: 3128, path: 'http://<some host>:4080'+searchQuery, […]