为了说清楚,我使用了MongoDB,Express,React和Node堆栈。如何使用api在服务器端进行反应?
我在努力学习react.js。我掌握了基本知识,并且能够使用路由器编写简单的反应应用程序。我也尝试过在服务器端渲染一个简单的反应应用程序,它也可以很好地工作。不过,我现在坚持认为我想用api和服务器端渲染完成一个完整的应用程序。
1)我不知道如何去分离api和服务器文件中的反应代码。首先列出api调用,然后执行服务器端渲染工作? 像这样:
app.get('/api/whatever', function(req, res) {
//get whatever
});
app.get('*', function(req, res) {
//math routes and renderToString React
});
2)另外,我甚至不能测试上面,其原因是,当我尝试使用nodemon它抛出一个错误运行服务器,因为它不理解的反应代码,我应该怎么做呢?我应该以某种方式配置nodemon以读取es6或忽略它或配置webpack运行express服务器?
3)最后的问题可以很容易地清楚这个整个故事。我试着找到一个答案,但得到了许多相互矛盾的答案。 Google抓取工具能够抓取React应用吗?我正在学习服务器端的搜索引擎优化,是否真的有必要?
对不起,很长的问题,期待阅读你的答案。
作为第二个app.get函数中的响应,您给出了什么? –
app.get( “*”,功能(REQ,RES){ ReactRouter.match({路线:AppRoutes,位置:req.url}, 功能(ERR,redirectLocation,renderProps){ 如果(ERR){ res.send(500,err.message) }否则如果(redirectLocation){ res.redirect(302,redirectLocation.pathname + redirectLocation.search) }否则如果(renderProps){ res.send(200,ReactDOMServer .renderToString( )) } else { res.send(404,'Not found') } }); }); –
YT98
我将在问题中添加整个函数作为编辑。这看起来不正确... – YT98