当前位置: 首页 > news >正文

部署node.js+express+mongodb(更新中)

1-Linux服务器部署MongoDB

1.升级

yum -y update

 2.下载MongoDB安装包

 3.上传安装包

上传目录 : /usr/local/

2-配置MongoDB环境变量并启动 

1.配置环境变量全局启动

vi ~/.bash_profile  

使用i命令进入编辑模式
添加: export PATH=/usr/local/mongodb/bin:$PATH

使用esc+:wq命令保存并退出

source ~/.bash_profile使其生效

2.建立数据路径data+日志路径logs

mkdir -p /usr/local/mongodb/data
mkdir -p /usr/local/mongodb/logs

3.启动MongoDB

方法一:路径命令

mongod --dbpath /usr/local/mongodb/data --logpath /usr/local/mongodb/logs/log.log -fork

如果报Permission denied,权限不够

sudo chmod +x /usr/local/mongodb/bin/mongod

 方法二:配置文件

建立mongodb.conf文件:
 

dbpath = /usr/local/mongodb/data
logpath = /usr/local/mongodb/logs/log.log
port = 27017
bind_ip = 0.0.0.0
fork = true

启动命令

mongod -f /usr/local/mongodb/mongodb.conf

4.运行MongoDB

运行:mongo
查看数据库:show dbs
退出:quit()

5.启动状态

查询启动状态:ps -ef | grep mongod
停止启动状态: kill -2 进程号

4-MongoDB开机自启动 

在/lib/systemd/system/路径下建立mongodb.service文件:

[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/mongodb.conf
PrivateTmp=true[Install]
WantedBy=multi-user.target

 5-Linux服务器安装NodeJS+PM2

以 Node.js 版本 16.x 为例,以下是通过 NodeSource 安装 Node.js 特定版本的步骤:

1.首先,导入 Node.js 的 RPM 仓库:

curl -sL https://rpm.nodesource.com/setup_16.x | sudo bash -

这个命令将会为 Node.js 16.x 设置仓库。

2.然后,安装 Node.js: 

对于 CentOS 8、RHEL 8 或更高版本使用 dnf

sudo dnf clean all && sudo dnf makecache
sudo dnf install -y nodejs

3.验证 Node.js 版本: 

node --version

如果您想安装16.18.1的确切版本而不是最新的16.x版本,或者如果上述步骤中的安装不提供您需要的确切版本,您可以使用 nvm 来安装 Node.js。以下是使用 nvm 安装特定 Node.js 版本的步骤:

1.安装 nvm: 

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

安装完成后,关闭并重新打开您的终端或者加载 nvm 配置

source ~/.bashrc

2.通过 nvm 安装特定版本的 Node.js: 

nvm install 16.18.1

 3.使用 nvm 选择要使用的 Node.js 版本:

nvm use 16.18.1

服务器上配置npm淘宝镜像

npm config set registry https://registry.npm.taobao.org

验证配置是否成功

npm config get registry

安装 PM2 

sudo npm install pm2@latest -g

 

6-compass可视化工具连接+管理Linux服务器MongoDB

1.去 MongoDB官网下载MongoDB Compass

2.然后新建一个数据库和集合测试 

7.-NodeJS通过mongoose模块获取MongoDB数据 

1.安装node模块

寻找的是全局安装的 Node.js 模块的位置:npm root -g 

cd进入然后安装

npm install mongodb --save
npm i mongoose --save

2.mongodb模块测试
root/.nvm/test-mongo/test.js测试文件

const { MongoClient } = require('/root/.nvm/node_modules/mongodb')
const client = new MongoClient('mongodb://localhost:27017')
async function main() {// 连接数据库await client.connect()console.log('连接成功')const db = client.db('Free')const collection = await db.collection('Free_User').find().toArray()console.log(collection)}
main()


运行命令
node root/.nvm/test-mongo/test.js

 

8-使用NodeJS模块express部署项目接口

1.安装node模块

也是先进入node的安装目录,然后安装包

cd /root/.nvmnpm i express --savenpm install -g supervisor

 

9-使用NodeJS模块express部署项目接口

1.在root文件下新建一个web文件夹

然后npm init-y

index.js文件

var express = require('/root/.nvm/node_modules/express')
var app = express()
app.listen(3000, function () {console.log('环境运行中')})app.get('/api1', function (req, res) {const resData = require('./api1')res.send(resData)
})app.get('/api2', function (req, res) {const resData = require('./api2')resData.api2().then(r => {console.log(r);res.send(r)})
})

api1.js

const api1 ='hello'
module.exports=api1

 api2.js

const { MongoClient } = require('/root/.nvm/node_modules/mongodb')
const client = new MongoClient('mongodb://localhost:27017')
const api2 = async function () {// 连接数据库await client.connect()console.log('连接成功')const db = client.db('Free')const collection = await db.collection('Free_User').find().toArray()return collection}
module.exports = {api2
}

 2.然后执行命令 supervisor node /root/web/index.js

3.然后打开公网:3000/api2就能看见数据

10.pm2配置开机启动

cd到你的node项目文件

pm2 start index.js
pm2 startup
pm2 save

http://www.lryc.cn/news/273542.html

相关文章:

  • 百度CTO王海峰:文心一言用户规模破1亿
  • 简单最短路径算法
  • 答案解析——C语言—第3次作业—算术操作符与关系操作符
  • 【数据结构】二叉树的链式实现
  • 八、QLayout 用户基本资料修改(Qt5 GUI系列)
  • tomcat、java、maven
  • IDEA好用插件
  • 面试官:CSS3新增了哪些新特性?
  • Vite5 + Vue3 + Element Plus 前端框架搭建
  • STM32 内部 EEPROM 读写
  • androidStudio sync failed GradlePropertiesModel (V2)
  • 结构方程模型(SEM)
  • 基于UDP的网络编程
  • vue判断组件有没有传入的slot有就渲染slot没有就渲染内部节点
  • MS713/MS713T:CMOS 低压、4Ω四路单刀单掷开关,替代ADG713
  • Android 内容生成pdf文件
  • Javaweb-日程管理
  • SwiftUI之深入解析如何创建一个灵活的选择器
  • 【模拟量采集1.2】电阻信号采集
  • c++牛客总结
  • ts相关笔记(基础必看)
  • Docker随笔
  • uni-app 前后端调用实例 基于Springboot
  • vue3+ts开发干货笔记
  • Android开发新的一年Flag
  • 好的OODA循环与快慢无关
  • Android 车联网——CarUserService介绍(十三)
  • 【开题报告】基于微信小程序的母婴商品仓库管理系统的设计与实现
  • 分布式锁相关问题(三)
  • grep!Linux系统下强大的文本搜索工具!