Node.js Express和Parse.com

时间:2016-01-16 16:15:43

标签: javascript json node.js parse-platform

我已经设置了一个node.js服务器应用程序,我想做一些parse.com请求。 我基本上希望它返回parse-object JSON表示。

我的路线:



var blog = require('./models/model');

app.get('/api/article/:permalink', function(req, res) {
  res.json(blog.getArticle(req.params.permalink));
});




我的模特:



var Parse = require('parse/node').Parse, // load the parse for node package
  keys = require('../../config/keys'); // keys config-file for hosted services

Parse.initialize(keys.app, keys.js);

module.exports = {

  getArticle: function(permalink) {
    "use strict";
    var Article = Parse.Object.extend('Article');
    var query = new Parse.Query(Article);
    query.include('category');
    query.include('profile');
    query.equalTo('permalink', permalink);
    query.find().then(function(results) {
      return results;
    }, function(error) {
      return error;
    });
  }

};




问题是,当我调用一个我知道存在的永久链接的文章时,这不会返回任何内容(例如:http://localhost/api/article/testFoo)。我也没有收到任何错误。

我的浏览器控制台瞬间闪烁一条消息,内容如下:

Resource interpreted as Document but transferred with MIME type application/json: "http://localhost/api/article/testFoo"

对我做错的任何建议?

1 个答案:

答案 0 :(得分:1)

您正在尝试使用异步函数的返回值。这不起作用,您需要将回调(或res对象)传递给getArticle函数,然后将其用于发送数据。

回调:

app.get('/api/article/:permalink', function(req, res) {
  blog.getArticle(req.params.permalink, function(data) {res.json(data)});
});

...

getArticle: function(permalink,callback) {

...

    query.find().then(function(results) {
      callback(results);
    }, function(error) {
      callback({error: error});
    });