我可以使用一些脚本使我的Mongoose数据库部署更加简化吗?

时间:2019-01-03 20:30:25

标签: javascript node.js express mongoose

我是n00b设置服务器方面的超级专家-现在只是学习后端知识,因此由于缺乏我的技术语言,我在搜索解决方案方面遇到了困难-我为n00b问题事先表示歉意。< / p>

我将跟着Traversy媒体视频一起尝试,使他们对设置服务器以及使用数据库存储和检索数据更加熟悉。该视频使用mongoose / mongodb-我对使用postgreSQL仅有一点经验,而且我还不太熟练,因此从概念上讲,这一切仍然很陌生。

我发现打开三个终端窗口以使我的项目正常运行真的很繁琐。我正在使用猫鼬v5.4.2,express v4.16.4和(尽管我怀疑它是否相关)我在最新版本的macOS(10.14.2)(使用本地终端)上使用了express-handlebars v3.0.0。

在我的package.json中,我没有脚本。

我要避免的事情:必须打开一些终端选项卡并运行mongo守护程序(cmd:mongod),然后在单独的选项卡(cmd:mongo中运行mongo客户端)。我是一个菜鸟,但这似乎是个不错的地方,它具有一些基本的脚本来使我免于每次打开项目或进行更改时都必须执行此操作。

我的app.js(这是我项目的入口点)具有以下代码来导入和运行猫鼬:

const express = require('express')
const exphbs = require('express-handlebars')
const mongoose = require('mongoose')

const app = express()

mongoose.Promise = global.Promise

// Connect to Mongoose
mongoose.connect('mongodb://localhost/vidjot-dev', { useNewUrlParser: true } )
  .then(() => console.log('MongoDB Connected'))
  .catch(err => console.log(err))

我已验证我的项目正在指定端口上运行(对于我的项目为3000),并且可以使我的mongoose数据库运行-但前提是我先运行mongo守护程序,然后再运行mongoose客户端。

请原谅我的语言缺乏特异性/技术上的正确性-我对这方面的知识很陌生。我希望我已经提供了足够的信息,但希望编辑后提供任何其他人认为相关的信息。我使用了指导版本来发布此信息,因此我认为我已填写了所有必填/期望的信息。

1 个答案:

答案 0 :(得分:1)

我不太确定,但是它可以在某种程度上起作用。在您的package.json文件中添加以下脚本。

"scripts": {
  "prestart": "start mongod --config ./data/mongod.cfg",
  "start": "node ./server/bin/www",
  "poststart": "start mongo admin --eval \"db.getSiblingDB('admin').shutdownServer()\"",
},