Articles of json

如何从forEach函数聚合json对象的数组?

我想渲染node.js中所有项目的故事。 怎么做? app.get('/stories', function(request, response) { var projects_ids = [1,2]; project_ids.forEach(function(id) { pivotal.getStories(id, function(err, project_stories) { console.log("Stories: " + project_stories); return JSON.stringify(project_stories); }); }); response.send(array_of_stories); }); 在日志中我得到: Stories: [object Object] Stories: [object Object]

为什么你不能返回一个对象到Javascript的Array.map(),它正确地映射它?

我有两个函数(它们是从一个更大的脚本,所以假设一切都被定义等) self.sentenceObjs很好,它返回一个完全像它应该做的对象self.parseBodySections由于某种原因将bodyJSON设置为一个数组undefined即使self.sentenceObjs返回完美的对象,因为我希望映射的dom数组。一些Array.map() ,我想念? self.parseBodySections = function(dom, cb) { var bodyJSON = dom.map(self.sentenceObjs); console.log(bodyJSON); // prints: [ undefined, undefined, undefined, undefined, undefined ] return cb(null, bodyJSON); }; self.sentenceObjs = function(section) { var paragraphToTextAndLinks = function(cb) { return self.paragraphToTextAndLinks(section.children, function(err, paragraphText, links) { if (err) { return cb(err); } return cb(null, paragraphText, links); }); }; return async.waterfall([ […]

姜饼浏览器跨域响应串联错误

我们发现Gingerbread默认浏览器处理跨域请求的方式与大多数其他浏览器不同。 服务器代码适当地响应OPTIONS调用,所有正确的头文件访问控制头文件和一个200状态代码,并用200状态代码和适当的主体响应POST调用。 服务器是用Node编写的,使用Express,对于这个testing来说是非常小的: var express = require('express'); var http = require('http'); var app = express(); var server = http.createServer(app); // middleware app.use(express.logger('dev')); app.use(function(req, res, next) { var origin = req.get('origin'); if (origin) { res.header({ 'Access-Control-Allow-Origin': origin, 'Access-Control-Allow-Methods': 'GET,POST,OPTIONS', 'Access-Control-Allow-Headers': 'Content-Type', 'Access-Control-Allow-Credentials': true }); } if (req.method === "OPTIONS") return res.send(200); if (req.method !== "GET" && […]

Mongoose.js无法从我的文档中获取数组

在我的mongoose模型中,我有这样的用户架构: var userSchema = mongoose.Schema({ _id : String, username: String, name : String, timestamp : { type : Date, default: Date.now }, admin : Boolean, pages : [String] }); var User = mongoose.model('User', userSchema); 我试图从这个文件中得到这样的页面数组: function isUserPage(userId, pageId, callback) { models.User.find({_id: userId}, function(err, user) { console.log('user pages: ' + JSON.stringify(user[0].pages)); … }); 问题是我的console.log正在输出[[object object]]。 我可以看到数据在烟雾(一个基于web的mongodbpipe理查看器)中的数据,但我似乎无法用JavaScript访问它。 […]

TypeError:将圆形结构转换为JSON

在我的应用程序中,我正在创build一个对象来跟踪所有套接字; 我声明如下: var sockets = {}; 然后当一个新的套接字被创build时,我将套接字添加到我的sockets对象; sockets[socket.name] = socket; 这是我的应用程序的逻辑所必需的。 它完美的作品。 我遇到的问题是当我想要将sockets对象存储到一个文件(用于备份的目的)由于我的服务器有时重新启动。 如果重启应该发生,我不希望主动套接字丢失。 我试图把它保存到这样的文件: var outputFilenameee = 'sockets.json'; fs.writeFile(outputFilenameee, JSON.stringify(sockets), function(err) { if(err) { console.log(err); } else { console.log("sockets saved in " + outputFilenameee); } }); 但是我得到这个错误: TypeError:将圆形结构转换为JSON 下面是一个console.log的sockets : { '217.208.204.18:63695': { domain: null, _events: { data: [Function], end: [Function] }, _maxListeners: 10, […]

JSON API结果格式

伙计们,使用restify.js在Node.JS中devise我的第一个API。 我的背景不是webapis,请原谅我的业余问题。 无论如何,我想有res.send(data); 响应遵守http://jsonapi.org/format/,以便我的移动应用程序可以开始使用API​​调用。 此刻如果你打电话给我的api,它会返回以下格式的数据: {"Count":1,"Items":[{"dbsource":{"S":"foo"},"id":{"S":"5002820"},"name":{"S":"fnameblah,lnameblah"},"expiration":{"S":"06/13/2015"},"type":{"S":"bar"}}]} 实际上你看到的只是DynamoDB查询调用的返回。 所以问题是…你使用一个特殊的库,你可以传递数据,这将格式化并返回JSON格式的数据。 反过来,你可以通过res.send(data)将它返回给客户端,还是由我们来做'数据'JSON兼容,然后返回? 在一天结束时,我们都希望结果如下所示: { "posts": [{ "id": "1", "title": "Rails is Omakase", "links": { "author": "9", "comments": [ "5", "12", "17", "20" ] } }] } 谢谢!

JSONP在node.js中未定义,使用.send会导致意外的令牌错误

我在我的node.js函数中使用JSONP: this.send(JSON.stringify({ type: 'hello', username: this.data('username'), friends: friends })); 但是,它给了我一个意想不到的令牌“:”错误(我没有看到在JSON中)。 在阅读这篇文章之后: jsonp中的'Uncaught SyntaxError:Unexpected token:' 我发现它可能是一个JSON / JSONP的问题。 所以我改变了我的代码: this.jsonp(JSON.stringify({ type: 'hello', username: this.data('username'), friends: friends })); 但是,它说这没有方法“jsonp”。 我不能使用发送,因为我在客户端使用jsonp。 这很奇怪,因为我可以在任何地方使用jsonp,但是在这里。 这里是user.js文件中的一些函数。 User.prototype.send = function(code, message, callback) { this._send('listener', code, message, callback); }; User.prototype._send = function(type, code, message, callback) { if(!message && typeof code != 'number') { […]

在Java REST风格的Web服务(javax.ws..rs。*)Jersey中接收JSON对象

我有json contentType到glassfish服务器,我有java restful web服务安装程序的问题。 我使用针从Node.js POST: var options = { json: true, headers: {'Content-Type':'application/json'} } needle.post(base_url+'priorityList/',priorityList,options, function(err, resp, body){ }); 并与jersey接受: @POST @Path("/priorityList/") @Consumes(MediaType.APPLICATION_JSON) //@Consumes("text/plain") @Produces(MediaType.APPLICATION_JSON) public JSONArray priorityList(JSONObject incomingJsonString)throws IOException { } 它在glassfish服务器上给我这个错误: WARNING: StandardWrapperValve[com.mycompany.recommenderenginejava.ApplicationConfig]: Servlet.service() for servlet com.mycompany.recommenderenginejava.ApplicationConfig threw exception org.codehaus.jackson.map.exc.Unr`enter code here`ecognizedPropertyException: Unrecognized field "{"categories":["golf","banks"]}" (Class com.mycompany.recommenderenginejava.JSONObject), not marked as ignorable at […]

如何将外部JSON数据从前一个任务中生成的文件传递给任务?

我被困在这里了。 我有这种types的任务gruntfile: grunt.initConfig({ shell: { // stub task; do not really generate anything, just copy to test copyJSON: { command: 'mkdir .tmp && cp stub.json .tmp/javascripts.json' } }, uglify: { build: { files: { 'output.min.js': grunt.file.readJSON('.tmp/javascripts.json') } } }, clean: { temp: { src: '.tmp' } } }); grunt.registerTask('build', [ 'shell:copyJSON', 'uglify:build', 'clean:temp' ]); 而且,cource,这是行不通的,因为没有.tmp/javascripts.json文件: […]

从节点js调用另一个文件

我有一个名为node.js的文件: var net = require('net'); var crypto = require('crypto'); //sjcl var sjcl = require('./sjcl'); //retrive fb profile var loadFb = require('./loadFb.js'); var loadFeed = require('./loadFeed.js'); //read json user file var fs = require('fs'); var text = fs.readFileSync(__dirname + '/users','utf8'); var HOST = 'localhost'; var PORT = 7000; net.createServer(function(sock) { // We have a connection – […]