当前位置: 首页 > 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.jspm2 savesudo rebootpm2 status

相关文章:

  • Visual Studio 2013 “即将退休”
  • 顺序表的实现(C语言)
  • pytest conftest通过fixture实现变量共享
  • Django 10 表单
  • CSS3渐变属性详解
  • 基于Springboot的在线考试系统
  • 内网安全实战防御技术和防御产品
  • CISSP 第9章:安全脆弱性、威胁和对策
  • 在 Mac 上轻松安装和配置 JMeter
  • CMake 中 install 命令用于定义安装规则,指定构建目标(如可执行文件、库等)和文件应该被安装到的位置。
  • 用可视化案例讲Rust编程1. 怎么能学会Rust
  • 从零开始:创建与维护一个成功的前端开源项目实操指南
  • 2024前端炫酷源码分享(附效果图及在线演示)
  • 揭开JavaScript数据类型的神秘面纱
  • 物理实验报告(二)| 表面张力
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Git的一些常用操作
  • HTML中设置input等文本框为不可操作
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Linux gpio口使用方法
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Travix是如何部署应用程序到Kubernetes上的
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 京东美团研发面经
  • 每天一个设计模式之命令模式
  • 前端技术周刊 2019-01-14:客户端存储
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​Python 3 新特性:类型注解
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #pragma data_seg 共享数据区(转)
  • #pragma once
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • $(function(){})与(function($){....})(jQuery)的区别
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • .describe() python_Python-Win32com-Excel
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET 8.0 中有哪些新的变化?
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET delegate 委托 、 Event 事件
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .netcore如何运行环境安装到Linux服务器
  • .NET与 java通用的3DES加密解密方法
  • .Net语言中的StringBuilder:入门到精通
  • :=
  • ??javascript里的变量问题
  • @Autowired 与@Resource的区别
  • [ C++ ] 继承
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
  • [Angular 基础] - 数据绑定(databinding)
  • [autojs]逍遥模拟器和vscode对接
  • [AutoSar]BSW_Memory_Stack_003 NVM与APP的显式和隐式同步