Javascript NodeJS同时使用node static和restify
我正在为一个应用程序创建一个简单的测试平台,并在我的应用程序根目录中将以下代码设置为我的server.js文件:Javascript NodeJS同时使用node static和restify,javascript,node.js,restify,node-static,Javascript,Node.js,Restify,Node Static,我正在为一个应用程序创建一个简单的测试平台,并在我的应用程序根目录中将以下代码设置为我的server.js文件: var restify = require('restify'), nstatic = require('node-static'), fs = require('fs'), data = __dirname + '/data.json', server = restify.createServer(); // Serve static files
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时,它只是挂起并超时。假设我在这里遗漏了一些愚蠢的东西,任何帮助都将不胜感激。您可以通过将第二个get移到第一个get之前来确保捕获api get调用。原因是您的api调用路由已经与第一个模式匹配。您可以通过将第二个get移动到第一个get之前来确保捕获api get调用。原因是您的api调用路由已经与第一个模式匹配。节点static正在调用next,但出现错误,这意味着它永远不会向其他处理程序屈服 您可以将其他处理程序移到节点静态之上,或者通过截取其回调来忽略其错误
我在这里做了一个工作版本:节点static调用next时出错,这意味着它永远不会屈服于其他处理程序 您可以将其他处理程序移到节点静态之上,或者通过截取其回调来忽略其错误
我在这里制作了一个工作版本:您可以检查标题,看看在尝试命中api时发生了什么,和/或在api方法上设置断点,看看它是否被命中。I console.log记录了/api get调用,但它从未到达。除此之外,它只是超时。当无法提供文件时,nstatic serve是否使用next?否则,您必须将第二个get移到第一个get之前。您可以检查标头,查看在尝试命中api时发生的情况,和/或在api方法上设置断点,查看是否命中。I console.loged了/api get调用,但它从未到达。除此之外,它只是超时。当无法提供文件时,nstatic serve是否使用next?否则你就得在第一个球之前移动第二个球。