1

我有一个 SPA,它在特定的 REST url 上请求数据,比如“/things”。

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

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

如果这个问题已经得到回答,我深表歉意(感觉就像一个非常基本的用例),但是 lite-server 和 BrowserSync 的文档都没有回答这个问题,而且谷歌让我失望了。

4

1 回答 1

1

我已经确定,答案是“你不能用 lite-server 做到这一点”。我的替代方法是使用 Express,它提供了一个 API 来定义完全符合我需要的路由规则。这有点 hacky(例如,response.sendFile(...) 不支持相对路径,因此path.join(...)下面的骗局),但我会让它工作。

我的测试将针对使用如下脚本的 Node 引导实例运行:

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\" ",
    ...
于 2017-01-20T21:18:24.320 回答