Articles of 获取

在页面加载时骨干提取集合

我知道backbone文档说fetch不应该被用来在页面加载时填充集合 ,而且我会弄清楚为什么: var appCollection = Backbone.Collection.extend({ model:appModel, url:'api/app', initialize:function(){ this.fetch(); }, }); var homeView = Backbone.View.extend({ el:'#content', initialize:function(){ this.collection = new appCollection(appModel) this.render() }, render: function () { var that = this; alert(1); _.each(this.collection.models, function (item) { that.renderApp(item); }, this); }, renderApp: function (item) { var appview = new appView({ model: item }); this.$el.append(appview.render().el); } […]

在Node.js中向JSON API发出GET请求?

想知道如何使用Node.js对一个JSON API做一个GET请求。 我最好想使用Express,但是这不是必须的,输出在Jade页面上。 对于Node.js和后端语言,我还是一个全新的东西。

当jsonparsing一个空的响应时,Whatwg Fetch失败,我该如何防止它?

我在前端和后端(NodeJS)都使用了Fetch API,这个问题在将响应parsing为json时会遇到很多问题。 response.json()将返回一个promise,所以我不知道响应的主体是什么,当body是空的时候,JSONparsing将会失败并显示错误: SyntaxError: Unexpected end of input 所以我的问题是,如何防止parsing响应时,它的空? 谢谢

Node.js:使用多个查询参数来表示app.get

我想查询yelp API,并有以下路线: app.get("/yelp/term/:term/location/:location", yelp.listPlaces) 当我向GET请求时 http://localhost:3000/yelp?term=food&location=austin , 我得到错误 Cannot GET /yelp?term=food&location=austin 我究竟做错了什么?

Node.js:node.js中的http.get方法是否有同步版本?

node.js中有没有同步版本的http.get方法? 就像是: http.getSync({ host: 'google.com', port: 80, path: '/' }, function(response){ }); console.log(response) 有时候这会非常有用。

Koa的`ctx.status`没有被发送到客户端

这是我的简单路线: router.post('/getFile', async (ctx) => { const fileName = `${ctx.request.body.file}.pdf`; const file = fs.createReadStream(fileName); // This file might not exist. file.on('error', (err) => { ctx.response.status = 500; // This status code doesn't make it to client when there's an error. }); ctx.response.type = 'application/pdf'; ctx.response.body = file; }); 这里是我的客户代码: async function main() { const request […]

Node.js HTTP请求没有返回完整的响应

我正在使用Node的http模块发出HTTP请求,但在data ,返回的块似乎并不满足完整的请求响应。 这是我的代码: var req = http.request(httpOptions, function(res) { res.setEncoding('utf8'); }); req.on('response', function (response) { response.on('data', function (chunk) { console.log(chunk); callback(null, JSON.parse(chunk)); }); }); req.on('error', function(e) { callback(e); //callback(e.message); }); req.end(); 在结束请求之前是否有办法等待完整输出? 难道我做错了什么? 谢谢!

Node.js Express路由命名和sorting:如何确定优先级?

假设我的Express应用程序有几条GET路线: // music albums app.get('/api/albums', routes.albums.getAlbums); app.get('/api/albums/:id', routes.albums.getAlbum); app.get('/api/albums/artwork', routes.albums.getAlbumArtwork); 我尝试使用下面的jQuery AJAX代码片段来触发它们: $("#retrieveAlbumArtwork").on("click", function() { $.ajax({ url: "api/albums/artwork", type: "GET", data: { artist: $("#albumArtist").val(), title: $("#albumTitle").val() }, // … callbacks and such 出于某种原因,这个调用命中第二个处理程序,使用/:id参数,而不是显式/artwork路线。 像这样交换它们使其function如预期的那样: // music albums app.get('/api/albums', routes.albums.getAlbums); app.get('/api/albums/artwork', routes.albums.getAlbumArtwork); app.get('/api/albums/:id', routes.albums.getAlbum); 有人可以解释为什么会发生这种情况吗? 我会假设快车会很聪明,以确定一个身份证参数( /albums/23453243 )与查询string( /albums/artwork?artist=artistName&title=albumTitle )和适当的路线,但这似乎并不是这样的情况?