如何通过Express Router在Nodejs中设置此Url

时间:2014-11-25 09:50:07

标签: node.js express router

我有这样的网址:

localhost:3000/HotDataWindow_Region.html?callback=jsonp1416904898691&datatype=Region

如何设置路由器以获取它?

1 个答案:

答案 0 :(得分:0)

我不太确定您是否已经指出了您面临的确切问题,但是可以使用响应对象的sendFile方法从快速路由器提供原始html。

  1. 获取请求的路径名 - 端口之后的斜杠(如果存在)与启动查询字符串的问号之间的位。您可以使用网址模块或任何替代方案。
  2. 从网址获取查询字符串并随意执行任何操作。
  3. 创建一个选项对象文字并传递一些选项,例如原始html文件相对于执行javaScript所在位置的位置
  4. 使用sendFile呈现原始html并按您希望的方式处理错误 - API在此处:http://expressjs.com/api.html#res.sendfile
  5. 如果有帮助,请参阅下面的示例,该示例可能会帮助您:

    var express = require('express'),
        app = express(),
        url = require ('url');
        router = express.Router();
    router.get('/index.html', function(req, res){
        var options = {
            root: __dirname + '/html/' //assuming your raw html files are kept in /html sub folder
        }; 
        var fileName = url.parse(req.url).pathname;
        var query = url.parse(req.url).query; // do whatever with the query string(s)
        res.sendFile(fileName, options, function(error){
            //handle your error anyway you want
        });
    });
    app.use('/', router);
    app.listen(3900);
    

    但是,由于你在示例网址中有查询字符串,我想你需要一个模板引擎,而不是提供原始的html文件!

    我希望你能朝着正确的方向前进。

    SO1