Tag: json

如何使用这些Node模块通过文件或URL接受HTML,然后输出JSON作为现有HTML元素的validation?

本质上,我需要做的是采取本地grader.js文件,然后在命令行中使用它inputHTML,然后将输出JSON数据到控制台validation多个HTML元素的存在。 用法看起来像这样: ./grader.js –checks checks.json –file index.html ./grader.js –checks checks.json –url http://google.com 正在使用的Node模块是Commander(用于在命令行中工作),Cheerio(用于HTML)和Restler(用于从URL获取HTML)。 checks.json文件非常简单,只需要检查是否存在一些简单的HTML元素,以确定它们是否存在于页面上: ["h1", ".navigation", ".logo", ".blank", ".about", ".heading", ".subheading", ".pitch", ".video", ".thermometer", ".order", ".social", ".section1", ".section2", ".faq", ".footer"] grader.js文件是事情变得更复杂的地方。 下面的代码实际上起作用,因为它需要命令行参数,并且确实是否存在HTML元素的真值或假值。 但在底部添加URL检查后,它不能正常工作。 我的checkURL函数有问题,而且我使用底部的Commander代码来实现它。 即使真假值依赖于我使用的HTML文件/ URL是正确的,但我最终还是将两个检查都吐出到控制台上,即使我只想检查文件或URL,而不是两者。 我相当新,所以我很惊讶,它可以工作。 这可能与默认值有关,但是当我尝试进行这些更改时,checkURL函数似乎分解了。 在此先感谢您的帮助,我真的很感激。 #!/usr/bin/env node var fs = require('fs'); var program = require('commander'); var cheerio = require('cheerio'); var rest […]

附加到JSON文件(Node.JS,Javascript)

我目前有一个json文件设置与以下格式: { "OnetimeCode" : "Value" } 我希望能够做到两件事情: 附加到文件(更改文件中的值) 将新项目添加到文件(以相同的格式) 我一直在寻找近一个小时,试图find一个模块(节点)或只是简单的示例代码,可以让我做到这一点。 我已经尝试过使用几个插件,而不是追加到文件,他们完全重写它。 其中一个插件叫做“jsonfile”(npm install jsonfile) var jf = require('jsonfile'); // Requires Reading/Writing JSON var jsonStr = WEAS_ConfigFile; var obj = JSON.parse(jsonStr); obj.push({OnetimeCode : WEAS_Server_NewOneTimeCode}); jf.writeFileSync(WEAS_ConfigFile, obj); // Writes object to file 但是,这似乎并没有工作。 任何帮助表示赞赏! 但请保持简单。 另外:我不能使用jQuery

Node.js和JSON.stringify缺less一些来自对象的值/参数

也许我不明白的JavaScript /咖啡脚本以及我想,但是当我这样做: that.thing = thing that.thing.title = "some title" console.log(that.thing.title) console.log(JSON.stringify(that.thing) 我得到输出: 一些标题 { “CREATION_DATE”: “2011-09-09T00:40:03.742Z”, “_ ID”: “4e6960638ec80519a0000013”} 问题是,我似乎失去了标题属性,当我做的string化(后来当function存在,我似乎有其他有趣的问题,我认为必须与'那',这嵌套在多个fxn调用)。 (我现在必须做一个丑陋的解决scheme,我现在在那里解决我的问题。我必须解决的其他问题之前,包括node.js + async + mongoose.find,这是所有内部的async.findEach) 当我做 console.log(that.thing.toJSON) 我得到: 函数(){返回this.toObject(); } 谢谢。

从node.js(fs模块)中的文件stream中删除最后一个字符

使用node.js,我试图build立一个对象数组,并将其写入一个文件。 为此,我使用内置的fs库。 在调用var file = fs.createWriteStream('arrayOfObjects.json'); 和file.write('[')我运行了几个asynchronous函数,最终追加这样的对象: file.write(JSON.stringify(objectToAppend) + ',\n') 我可以确定什么时候所有的对象都停止了追加,这是我运行file.write(']')和file.end() 。 我的问题是添加最后一个对象的最后一个逗号导致JSON无效。 由于脚本的asynchronous性质,确定何时何地创build最后一个对象是非常困难的,所以我想知道是否有办法从文件stream中去除或删除字符。 如果是这样,我可以在添加最后的']'字符之前做到这一点。 我可以手动执行此操作,但是我希望将其传送给另一个应用程序。 我想过的唯一的解决scheme是使用fs.truncate()函数,但是这似乎不适用于文件stream, file.length或file.length()将给我的内容的长度,因为它不是一个string,所以很难确定如何或在哪里截断文件。 现在我刚刚在数组的末尾添加了'{}]' ,以使其成为有效的JSON,但这个空对象稍后可能会导致一些问题。 另外请注意:我在这个stream中写入的对象数组非常大,所以我宁愿不要结束stream并重新打开文件 。

在Nodejs中parsing大的JSON文件并独立处理每个对象

我需要在Nodejs中读取一个大的JSON文件(大约630MB)并将每个对象插入到MongoDB中。 我已经阅读了这里的答案: 在Nodejs中parsing大的JSON文件 。 但是,那里的答案是逐行处理JSON文件,而不是逐个对象地处理它。 因此,我仍然不知道如何从这个文件中获取对象并进行操作。 我在我的JSON文件中有大约100,000个这样的对象。 数据格式: [ { "id": "0000000", "name": "Donna Blak", "livingSuburb": "Tingalpa", "age": 53, "nearestHospital": "Royal Children's Hospital", "treatments": { "19890803": { "medicine": "Stomach flu B", "disease": "Stomach flu" }, "19740112": { "medicine": "Progeria C", "disease": "Progeria" }, "19830206": { "medicine": "Poliomyelitis B", "disease": "Poliomyelitis" } }, "class": "patient" }, […]

Nodejs – 通过嵌套的JSON数组迭代的正确方法

考虑下面的示例JSON数组: [{ info: { refOne: 'refOne', refTwo: [{ refOne: 'refOne', refTwo: 'refTwo' }] } }, { info: { refOne: 'refOne', refTwo: [{ refOne: 'refOne', refTwo: 'refTwo' }] } }] 上面的JSON是一个数据库查询响应的简单表示,在Nodejs中循环父信息数组中每个“refTwo”数组的正确方法是什么? sudo示例:对于每个ref的示例JSON中的每个项目,当前项目中的两个项目执行某些操作 我怀疑在这里可能需要'async'lib,但是有些build议非常感谢。

Nodejs jQuery需要jsdom

$.getJSON('https://api.twitch.tv/kraken/channels/' + SLoppierKitty7, function(channel) { if (channel["stream"] == null) { var live ="no" } else { var live ="yes" } 这是我的代码,但是当我运行它我得到以下错误 E:\ sloppers bot \ node_modules \ jQuery \ lib \ node -jquery.js:5 window = require('jsdom')。jsdom()。createWindow(); ^ TypeError:require(…)。jsdom(…)。createWindow不是E:\ create(E:\ Sloppers bot \ node_modules \ jQuery \ lib \ node-jquery.js:5:39) Sloppers bot \ node_modules \ jQuery […]

如何通过假设一个默认的内容typesparsingExpress / NodeJs中的缺less内容types的HTTP请求?

如果快速bodyParser不启动,我怎么能访问POST请求中的数据? var server = express(); server.use(express.bodyParser()); server.post('/api/v1', function(req, resp) { var body = req.body; //if request header does not contain 'Content-Type: application/json' //express bodyParser does not parse the body body is undefined var out = { 'echo': body }; resp.contentType('application/json'); resp.send(200, JSON.stringify(out)); }); 注意:在ExpressJs 3.x + req.body不是自动可用的,需要bodyParser来激活。 如果没有设置内容types标题,是否可以指定application/json的默认内容types并触发bodyParser ? 否则是否可以从这个快速POST函数内使用裸nodejs方式访问POST数据? (例如req.on('data', function… )

将枚举转换为值数组(将所有JSON值放入数组中)

我用这个方法在JavaScript中枚举? 在我们的代码中创build枚举 所以 var types = { "WHITE" : 0, "BLACK" : 1 } 现在的问题是我想在任何地方创buildvalidation,我必须这样做; model.validate("typesColumn", [ types.WHITE, types.BLACK ]); 现在有什么办法可以简单地将types中的值转换为数组,以便我不必列出枚举的所有值? model.validate("typesColumn", types.ValuesInArray]); 编辑 :我创build了一个非常简单的枚举库来生成简单的枚举npm –save-dev install simple-enum ( https://www.npmjs.com/package/simple-enum )

代理json请求与节点expression

我使用以下节点快速代码将来自Web服务器的请求代理到API服务器: app.use('/api', function(req, res) { var url = 'http://my.domain.com/api' + req.url; req.pipe(request(url)).pipe(res); }); 这适用于任何动词(get,post等)的简单请求,但是一旦我发送'Content-type': 'application/json'请求,它会挂在pipe上。 为什么这个简单的节点代理代码挂在json请求上? 如何改变以支持他们?