javascript - 如何在谷歌云上使用已安装的 mongodb
问题描述
我最近用 nodejs 开发了一个 react 应用程序,它的数据依赖于 mongodb。我还刚刚在 Google Compute Engine 上安装了 mongodb 并打开了 27017 端口。但是,我的问题是,我如何将我的应用程序(我正在使用 Mongoose)连接到 VM 实例。
这是localhost(我的本地机器)上的连接字符串,我应该将其更改为:
module.exports = {
url: 'mongodb://localhost:27017/dapashirts'
}
这是我的 server.js 文件:
const express = require('express');
const bodyParser = require('body-parser');
const cors = require("cors");
const app = express();
app.use(cors());
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
// Configuring the database
const dbConfig = require('./config/database.config.js');
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
// Connecting to the database
mongoose.connect(dbConfig.url, {
useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true
}).then(() => {
console.log("Successfully connected to the database");
}).catch(err => {
console.log('Could not connect to the database. Exiting now...', err);
process.exit();
});
// Require routes
require('./routes/department.routes.js')(app);
require('./routes/category.routes.js')(app);
require('./routes/product.routes.js')(app);
require('./routes/order.routes.js')(app);
app.listen(3500, () => {
console.log("Server is listening on port 3500");
});
这是一个示例模型:
const mongoose = require('mongoose');
const ProductSchema = mongoose.Schema({
category_id: {
type: [mongoose.Schema.Types.ObjectId],
required: true
},
name: {
type: String,
required: true,
unique: true
},
description: {
type: String,
required: true
},
price: {
type: Number,
required: true
},
discounted_price: {type: Number, default: 0.00},
image: String,
image_2: String,
thumbnail: String,
display: { type: Number, min: 0, max: 3, default: 0 }
});
module.exports = mongoose.model('Product', ProductSchema);
这是一个示例路线:
module.exports = (app) => {
const products = require('../controllers/product.controllers.js');
// Create a new product
app.post('/products', products.create);
// Retrieve all products
app.get('/products', products.findAll);
// Retrieve a single product with productId
app.get('/products/:productId', products.findOne);
// Retrieve a products with categoryId
app.get('/products/:categoryId', products.findWithCategoryId);
// Update a product with productId
app.put('/products/:productId', products.update);
// Delete a produt with productId
app.delete('/products/:productId', products.delete);
}
我如何也将我的 localhost 数据库传输到 Google Compute Engine
解决方案
最简单的方法是使用来自 Mongo DB 的数据库即服务 (daas):https: //www.mongodb.com/cloud/atlas
推荐阅读
- django - 在登录页面上按下提交按钮时找不到错误页面 (404)
- python-3.x - 与 pandas 进行分组和合并
- windows-10 - 4K MJPEG 相机视频预览延迟(在 Windows 10 上)
- java - JAXB 解组列表以映射适配器
- c# - WPF 窗口 OnShown 事件
- algorithm - 排列为图形的对象
- javascript - 基于选择集值的自适应卡片显示文本输入块
- android - 未处理的异常:类型 '_InternalLinkedHashMap
' 不是类型 'Iterable 的子类型 '为什么会出现这个错误 - wget - 为什么 wget 为每个文件添加 html 扩展?
- ios - 对对象的引用不明确