pickerサーバー側のルータを使用して、私は流星の残りのAPIでres.send('string')
またはres.json(json)
のようなエクスプレス機能を使用しようとしています。ドキュメントには、流星ピッカーサーバー側のルータは、エクスプレスミドルウェアを使用
既存の接続およびエクスプレスミドルウェアは、 の問題なしで使用できます。
res.sendおよびres.jsonのような表現機能を使用するにはどうすればよいですか?私はそれらを使用しようとすると、彼らは機能していないと私に伝えます。
私は私のサーバーに対して次のmain.jsファイルを持っている:私は次のエラーを取得する
function helloworld(params, req, res, next) {
res.send('id:' + params.id);
}
module.exports = helloworld;
:
import { Meteor } from 'meteor/meteor';
import { Picker} from 'meteor/meteorhacks:picker';
var bodyParser = Meteor.npmRequire('body-parser'),
methodOverride = Meteor.npmRequire('method-override'),
logger = Meteor.npmRequire('morgan');
Picker.middleware(bodyParser.json());
Picker.middleware(bodyParser.urlencoded({extended:false}));
Picker.middleware(logger('dev'));
Picker.middleware(methodOverride('X-HTTP-Method')); // Microsoft
Picker.middleware(methodOverride('X-HTTP-Method-Override')); // Google/GData
Picker.middleware(methodOverride('X-Method-Override'));
Meteor.startup(() => {
console.log('meteor server started');
var postRoutes = Picker.filter(function(req, res) {
return req.method == "POST";
});
postRoutes.route('/post/:id', require('./routes/helloworld'));
});
そして、次のルートアクション(ルート/ helloworld.jsを)
TypeError: res.send is not a function
res.jsonを使用しようとすると、同じエラーが表示されます...
packages.json:
{
"body-parser": "1.15.2",
"chai": "3.5.0",
"chai-http": "3.0.0",
"method-override": "2.3.6",
"mocha": "3.0.2",
"moment": "2.14.1",
"moment-timezone": "0.5.5",
"morgan": "1.7.0",
"supertest": "2.0.0",
"supertest-as-promised":"4.0.0",
"express":"4.14.0"
}
UPDATE私はこのコードでres.jsonを模倣することができることを見出した:
function helloworld(params, req, res, next) {
console.log(req.body);
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify({id:params.id}));
}
module.exports = helloworld;
あなたが明確でない質問。 'res.json()'や 'res.end()'/'res.write() 'を使うとエラーになりますか?それらはちょうど箱からうまくいくはずです。しかし、 'res.send()'はありません。 –
res.jsonとres.sendでエラーが発生する – AlexB
res.sendとres.jsonはexpressの関数です – AlexB