nodejs 相当于这个 .htaccess [英] nodejs equivalent of this .htaccess

查看:33
本文介绍了nodejs 相当于这个 .htaccess的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以在 node.js 中构建这样的代码?

Is it possible to build a code like this in node.js?

<IfModule mod_rewrite.c>
     RewriteEngine on

     RewriteCond% {REQUEST_URI}! / (View) / [NC]
     RewriteCond% {REQUEST_FILENAME}!-F
     RewriteRule ^ (. *) $ Index.html [L, QSA]

</IfModule>

url 显示一个路由不是view"并且文件不存在然后写index.html.

url display a route is not "view" and also the file does not exist then write index.html.

使用诸如 expressconnect

更新:node.jsexpress 的路由中需要 !/(view)/ 的正则表达式.

UPDATE: I need a regular expression for !/(view)/ in route for express in node.js.

推荐答案

最终的结构是:

var express = require('express'), url = require('url');

var app = express();
app.use(function(req, res, next) {
    console.log('%s %s', req.method, req.url);
    next();
});
app.configure(function() {
    var pub_dir = __dirname + '/public';
    app.set('port', process.env.PORT || 8080);
    app.engine('.html', require('ejs').__express);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'html');
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(express.cookieParser());
    app.use(express.static(pub_dir));
    app.use(app.router);
});
app.get('/*', function(req, res) {
    if (req.xhr) {
        var pathname = url.parse(req.url).pathname;
        res.sendfile('index.html', {root: __dirname + '/public' + pathname});
    } else {
        res.render('index');
    }
});

app.listen(app.get('port'));

谢谢大家.PD:使用模块 ejs 渲染 html

Thanks everyone. PD: Render html with module ejs

这篇关于nodejs 相当于这个 .htaccess的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆