【问题标题】:How to connect to MongoDB server and npm start at the same time for MERN app如何为 MERN 应用程序同时连接到 MongoDB 服务器和 npm start
【发布时间】:2019-11-20 03:56:56
【问题描述】:

我正在制作一个 MERN 应用程序,我注意到每次我希望它工作时,我必须首先通过“node server.js”连接到 MongoDB 服务器。 然后,我必须执行“npm start”来运行连接到我刚刚连接到的服务器的 react 应用程序。

有没有办法使用一个命令来完成这两个操作?

【问题讨论】:

  • 通过node server.js,您正在运行后端,该后端在内部连接到 Mongo DB。以下是您可以执行的操作:node <path to your server.js> && npm start 这将首先运行后端,然后将启动您的反应应用程序。
  • 在开发过程中,我建议单独运行它们并watch 进行更改,这样您就不必在更改代码时运行这些命令。您可以使用nodemon 为您的服务器应用程序实现这一目标。您仍然可以同时运行命令,但有时调试可能会变得更加困难。在生产中,我建议使用pm2
  • 我试过你的建议,我可以建立与服务器的连接。它显示我已成功连接到服务器,但它不允许我再编写任何命令,除非我打开一个新的终端窗口或按 Ctrl C。我希望脚本打开与服务器的连接,然后执行 npm start。我该怎么做?

标签: node.js reactjs mongodb express mern


【解决方案1】:

如果您将它用于生产,那么您可以使用 nodemon,这是一个很好的工具,可以热重载您的服务器和前端。

"scripts": {
"dev": "SET THIS=development & nodemon server.js",

},

另外,请确保您的服务器 JS 有一个指向您的应用的所有内容,例如:

server.get('*', (req, res) => {
    return handle(req, res)
})




 backend
 - - server.js //with mongodb connection, and api routes.  
//This is what you are going to use for your API calls from the front end. i.e http://backend.com/userapi/


 frontend
 - - server.js that contains the catch all statment.  Also would add custom routes in here i.e

server.get('/posts/:id', (req, res) => {
    return app.render(req, res, '/article', { id: req.params.id })
})

【讨论】:

  • 我试过你的建议,我可以建立与服务器的连接。它显示我已成功连接到服务器,但它不允许我再编写任何命令,除非我打开一个新的终端窗口或按 Ctrl C。我希望脚本打开与服务器的连接,然后执行 npm start。我该怎么做?
  • 你可以在之后添加 npm start,但你不应该在项目根目录中添加 server.js 文件?
  • 如果你在后端有一个服务器,而且你正在使用它,你还需要在前端创建一个 server.js 文件,用于路由。 mongodb连接需要在后端server.js文件中
  • 我的 server.js 文件不在根目录下,它在根目录下的另一个目录中。它需要在根目录中吗?
  • 是的,我编辑了答案,但没有保存。再次查看
猜你喜欢
  • 2019-01-05
  • 2021-01-28
  • 2017-12-13
  • 2022-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-25
相关资源
最近更新 更多