没有视图引擎的节点React结构

时间:2017-03-17 19:12:14

标签: node.js reactjs

我是节点的新手。我使用express-handlebars作为我的view-engine,但现在我添加了React,我明白我不再需要把手了。我遇到的问题是,为了进入index.html页面,没有把手,我不得不使用

app.use(express.static('./public'));

所有东西都是通过反应呈现的,但如果我想在用户进入索引页面时做其他事情,例如

app.get("/",function(req,res){
    console.log("connected");
});

如果我在导出静态文件后添加get请求,则永远不会调用console.log。如果我之前使用它,它会被调用,但我可以看到页面永远加载。我现在应该如何构建应用程序,因为我正在使用反应而我不再拥有view engine

2 个答案:

答案 0 :(得分:0)

在您的特定情况下,如果您不想向用户呈现任何内容,则应将您的功能转换为中间件:

app.get("/",function(req,res, next){
    console.log("connected");
    next();
});

并将其放在app.use(express.static('./public'));

之前

但是,如果你想用返回值等做实际的逻辑,我建议你设置一些你从客户端使用Ajax请求的API。

答案 1 :(得分:0)

您可以检查我的存储库 https://github.com/kennethmervin01/react-node-production

这是在node.js / express中提供React应用的样板

然后在app.js中检查我的代码

您只需要在react文件夹中复制您的react应用的生产版本

app.use(express.static(path.join(__dirname, "../react")));
app.get("/*", (req, res) => {
  res.sendFile(path.join(__dirname, "../react", "index.html"));
});