NodeJS使用节点static和restify在一起

NodeJS using node-static and restify together

本文关键字:restify 在一起 static 节点 NodeJS      更新时间:2023-09-26

我正在为应用程序创建一个简单的测试平台,并在应用程序的根目录中设置以下代码作为server.js文件:

var restify = require('restify'),
    nstatic = require('node-static'),
    fs = require('fs'),
    data = __dirname + '/data.json',
    server = restify.createServer();

// Serve static files
var file = new nstatic.Server('');
server.get(/^'/.*/, function(req, res, next) {
    file.serve(req, res, next);
});

// Process GET
server.get('/api/:id', function(req, res) {
    // NEVER FIRES
});

它完美地为静态文件提供服务,但是,当我尝试调用/api时,它只是挂起并超时。想象一下我在这里错过了什么愚蠢的东西,任何帮助都将不胜感激。

node static调用next时出错,这意味着它永远不会屈服于其他处理程序。

您可以将其他处理程序移到节点static之上,也可以通过拦截它的回调来忽略它的错误。

我在这里制作了一个工作版本:http://runnable.com/UWXHRONG7r1zAADe

您可以通过将第二个get移动到第一个之前来确保api get调用被捕获。原因是您的api调用路由已经与第一种模式相匹配。