1. 准备工作
1.1 获取阿里云ESC实例
- 推荐使用阿里云ESC,因为可以免费试用很爽
- 阿里云试用<—点我跳转阿里云
- 确保实例已预装
- MongoDB<—点我看怎么安装
1.2 连接到ESC实例
这里参考阿里云自带的文档们
阿里云ESC文档<–点这里看文档
给esc开3000端口<–点击看如何开端口
开出方向3000
或者你觉得无所谓开0000也行
2. 在ESC上安装Node.js
curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
sudo yum install -y nodejs
3. 本地uni-app准备
- 推荐使用HBuilderX
- 点我去下HBuilderX
- 安装HBuilderX后,打开并创建新项目
- 左上角文件
- 创建 uni-app组件
输入文件名默认组件。然后创建
4. MongoDB的使用
4.1 安装必要的npm包
npm install express mongoose cors
4.2 MongoDB基本操作
-
查看所有数据库
show dbs
-
创建/使用数据库
use mydatabase
-
查看集合
show collections
-
插入数据
db.mycollection.insertMany([ { name: "Alice", age: 25 }, { name: "Bob", age: 30 }, { name: "Charlie", age: 35 } ]);
-
查看数据
db.mycollection.find()
-
更漂亮的带空格查看数据
db.mycollection.find().pretty()
4.3怎么创建数据库
- 创建数据库:
use 数据库名
- 注意:不做集合的话,use别的数据库,它会给你直接删了
- 所以创建数据库和插入数据要一起执行
4.4 找不到你的刚刚插入的数据了
- use 你的每个数据库
- 然后show collection
- 看看是不是差错数据库了
- or(表并列)看看是不是没有权限
提升权限:
use admin;
db.updateUser(
'admin',
{
roles: [
{ role: 'readWrite', db: '你的新数据库' },
{ role: 'userAdminAnyDatabase', db: 'admin' }
]
}
);
或直接赋予root权限:
db.updateUser("admin", {
roles: [ { role: "root", db: "admin" } ]
})
4.5 退出MongoDB
- 输入
exit()
或按Ctrl+C
5. 建立Node.js与MongoDB的连接
5.1 创建服务器文件
mkdir /my-project
cd /my-project
touch server.js
vi server.js
5.2 编辑server.js
留意mydatabase 和mycollection是不是你想要的
不过你从上过流程到下面就无所谓
在你想链接别的数据库和集合注意
// server.js
const express = require('express');
const mongoose = require('mongoose');
const app = express();
const port = 3000;
mongoose.connect('mongodb://localhost:27017/mydatabase', {//看看这个mydatabase,链接其他数据库改这里就ok
useNewUrlParser: true,
useUnifiedTopology: true
});
const Schema = mongoose.Schema;
const chatSchema = new Schema({
Chating: {
fistGreeting: {
name: String,
age: String
}
}
});
const ChatModel = mongoose.model('Chat', chatSchema, 'mycollection');//看看这个mycollection
app.get('/api/chat', async (req, res) => {
try {
const chatData = await ChatModel.findOne();
if (!chatData) {
console.log("No data found in database");
res.status(404).send('No data found');
} else {
res.json(chatData);
}
} catch (err) {
console.error("Error fetching data from database:", err);
res.status(500).send('Error fetching data from database');
}
});
app.listen(port, () => {
console.log(`Server listening at http://localhost:${port}`);
});
5.3 使用PM2管理Node.js应用
安装PM2:
npm install pm2@latest -g
启动一下
pm2 start server.js
在浏览器输入
你esc的公网ip:3000/api/chat
看一下有没有返回数据
如果没有多半是server.js有问题
从头走到尾是没问题的
pm2会在后台一直运行,这样你就不用因为前台被node server.js占据无法做操作了
停止服务:
pm2 stop server.js
你esc的公网ip:3000/api/chat
显示断开连接时正常的
现在先打开,然后下一步
pm2 start server.js
6. uni-app前端开发
在HBuilderX中,打开index.uvue
文件,添加以下代码:
<template>
<view>
<h1>Users List</h1>
<view v-for="user in users" :key="user._id">
<p>Name: {{ user.name }}</p>
<p>Age: {{ user.age }}</p>
</view>
</view>
</template>
<script>
export default {
data() {
return {
users: []
};
},
onl oad() {
this.fetchUsers();
},
methods: {
async fetchUsers() {
try {
const [error, response] = await uni.request({
url: 'http://你的ESC公网IP:3000/api/users',
method: 'GET'
});
if (response.statusCode === 200) {
this.users = response.data;
} else {
console.error("Failed to fetch users:", response);
}
} catch (error) {
console.error("Error fetching users:", error);
}
}
}
};
</script>
<style scoped>
h1 {
font-size: 24px;
margin-bottom: 16px;
}
p {
margin: 10px 0;
}
</style>
然后查看内置浏览器或者运行到任意浏览器
就可以看见数据了
注意
- 确保ESC端口开了。
- 推荐开3000
- 记得换"你的ESC公网IP"