我是Node.js的新手。我正在尝试创建一个Web服务器,该服务器将1)提供静态html网页; 2)提供基本的JSON / REST API。管理层告诉我,我必须使用RESTIFY(我不知道为什么)。目前,我有以下内容:
var restify = require('restify');
var fs = require('fs');
var mime = require('mime');
var ecstatic = require('ecstatic');
var ws = restify.createServer({
name: 'site',
version: '0.2.0'
});
ws.use(restify.acceptParser(server.acceptable));
ws.use(restify.queryParser());
ws.use(restify.bodyParser());
ws.use(ecstatic({ root: __dirname + '/' }));
ws.get('/rest/customers', findCustomers);
ws.get('/', ecstatic({ root:__dirname }));
ws.get(/^\/([a-zA-0-9_\.~-]+\/(.*)/, ecstatic({ root:__dirname }));
server.listen(90, function() {
console.log('%s running on %s', server.name, server.url);
});
function findCustomers() {
var customers = [
{ name: 'Felix Jones', gender:'M' },
{ name: 'Sam Wilson', gender:'M' },
{ name: 'Bridget Fonda', gender:'F'}
];
return customers;
}
Run Code Online (Sandbox Code Playgroud)
启动Web服务器后,尝试http://localhost:90/rest/customers/在浏览器中访问该请求。但是,它只是坐在那儿,我似乎从未得到回应。我正在使用Fiddler监视流量,结果很长一段时间都保持为“-”。
如何从这种REST调用返回一些JSON?
谢谢
在2017年,实现此目标的现代方法是:
server.get('/rest/customer', (req,res) => {
let customer = {
data: 'sample value'
};
res.json(customer);
});
Run Code Online (Sandbox Code Playgroud)