ExpressJs查看帮助程序不起作用

时间:2016-03-28 07:50:18

标签: node.js express

这可能是一个新手问题。我试图设置我的第一个expressjs应用程序,我需要使用一个由于某种原因无法工作的视图助手。

这是我的server.js

var express = require('express');

var app = express();

var test = function(req, res, next) {
    res.myLog = function(){
        console.log("res");
        return "Hello";
    }
    next();
}

app.use(test);
app.get("*", function(req, res) {
    res.sendfile('./dist/index.html');
})

app.listen(5000);

和index.html

<html>
    <head>
        <title>Test application</title>
        <link rel="stylesheet" href="main.css" />
        <script src='<%=myLog()%>'></script>
    </head>
    <body>
        <h1>Yo World!</h1>
    </body>
</html>

在渲染过程中不调用myLog函数。最初我试图使用一些第三方帮助者,但他们也没有工作。

我还没找到任何关于如何在expressjs网站上使用助手的文档。我在这里显然做错了。

Express version 4.3.14

2 个答案:

答案 0 :(得分:0)

要使用var myXML:XML; var myLoader:URLLoader = new URLLoader(); myLoader.load(new URLRequest("summaries.xml")); myLoader.addEventListener(Event.COMPLETE, processXML); function processXML(e:Event):void { myXML = new XML(e.target.data); trace(myXML.*); quantity_txt = xml.quantity.text()[0]; } 发送文件,正确的方法是:

express

使用ejs模板引擎:

//sending html files
var express = require('express');
var app = express();
var path = require('path');

// viewed at http://localhost:5000
app.get('/', showClientRequest, function(req, res) {
    res.sendFile(path.join(__dirname + '/index.html'));
});

function showClientRequest(req, res, next) {
    var request = {
        REQUEST : {
            HEADERS: req.headers,
            BODY : req.body
        }
    }
    console.log(request)
    return next();
}

app.listen(5000);

节点作弊:

要获得完整的代码,请在express_server运行var express = require('express'); var ejs = require('ejs'); var app = express(); app.set('view engine', 'ejs'); var path = require('path'); // viewed at http://localhost:5000 app.get('/', showClientRequest, function(req, res) { res.render('index',{message:"Hello World!"}); }); function showClientRequest(req, res, next) { console.log('Something Here...'); return next(); } app.listen(5000); 后跟node app进行节点作弊。

答案 1 :(得分:0)

使用res.locals.myLog代替res.myLog来设置本地人。如果您在帮助函数中不需要req,也可以使用app.locals.myLog

res.sendfile不会渲染您的视图,只会按原样发送文件。您必须使用res.render并将dist/index.html移至views/index.ejs