2016-12-05 13 views
0

我有一个SPA请求特定REST网址处的数据,比如“/ things”。Node lite-server:如何将请求路由到任意文件的内容

在我的生产服务器中,通过查询数据库和构建JSON来处理此请求以表示结果。没有什么花哨。

我该如何配置lite-server(或BrowserSync)以“/testdata/test-things.json”内容来响应“/ things”中的GET?

如果已经回答了这个问题,我很抱歉(这感觉像是一个非常基本的用例),但是对于lite服务器和BrowserSync的文档都没有回答这个问题,并且Google让我失望了。

回答

0

我确定的答案是“你不能用lite-server来做这件事”。我的选择是使用Express,它提供了一个API来定义路由规则,这些路由规则正是我所需要的。这是一个小黑客(例如,response.sendFile(...)不支持相对路径,因此下面的path.join(...)诡计),但我会让它工作。

var express = require('express'); 
var debug = require('debug')('app'); 
var path = require('path'); 

var app = express(); 

app.use(express.static('.')); 

app.get('/', 
    function (req, res) { 
     debug("Root URL requested."); 
     res.sendFile(path.join(__dirname, 'index.html')); 
    }); 

app.get('/test', 
    function (req, res) { 
     debug("GET on /test") 
     res.send('Hello World'); 
    }); 

var port = process.env.PORT || 3000; 
debug("Using port ", port); 
var server = app.listen(port, 
    function() { 
     var host = server.address().address; 
     var port = server.address().port; 
     console.log('Listening at http://%s:%s', host, port); 
    }); 
} 

我已经更新的package.json像这样:

"main": "nodeapp.js", 
    "scripts": { 
    "cc": "concurrently \"npm -v\" \"npm run tsc:w\" ", 
    "start": "concurrently \"npm run tsc -v\" \"npm run tsc:w\" \"node nodeapp.js\" ", 
    ... 

我的测试将针对节点引导的一个实例,像这样一个脚本运行

相关问题