我是节点的新手。我使用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
?
答案 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"));
});