部署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
相关文章:

部署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:$P…...

百度CTO王海峰:文心一言用户规模破1亿
“文心一言用户规模突破1亿。”12月28日,百度首席技术官、深度学习技术及应用国家工程研究中心主任王海峰在第十届WAVE SUMMIT深度学习开发者大会上宣布。会上,王海峰以《文心加飞桨,翩然赴星河》为题作了主旨演讲,分享了飞桨和文…...

简单最短路径算法
前言 图的最短路径算法主要包括: 有向无权图的单源最短路径 宽度优先搜索算法(bfs) 有向非负权图的单源最短路径 迪杰斯特拉算法(Dijkstra) 有向有权图的单源最短路径 贝尔曼福特算法(Bellman-Ford&#…...
答案解析——C语言—第3次作业—算术操作符与关系操作符
本次作业链接如下: C语言—第3次作业—算术操作符与关系操作符 1.在C语言中,表达式 7 / 2 的结果是多少? - A) 3.5 - B) 3 - C) 4 - D) 编译错误 答案:B) 3 解析: 在C语言中,当两个整数进行除法运算时&…...

【数据结构】二叉树的链式实现
树是数据结构中非常重要的一种,在计算机的各方个面都有他的身影 此篇文章主要介绍二叉树的基本操作 目录 二叉树的定义:二叉树的创建:二叉树的遍历:前序遍历:中序遍历:后序遍历: 二叉树节点个数…...

八、QLayout 用户基本资料修改(Qt5 GUI系列)
目录 一、设计需求 二、实现代码 三、代码解析 四、总结 一、设计需求 在很多应用程序中会有用户注册或用户编辑信息等界面。本文就设计一个用户信息编辑界面。要求包含用户名、姓名、性别、部门、年龄、头像、个人说明等信息。 二、实现代码 #ifndef DIALOG_H #define D…...
tomcat、java、maven
JDK|JRE Tomcat官网介绍的更清楚 Java 环境安装 安装 wget https://builds.openlogic.com/downloadJDK/openlogic-openjdk/8u392-b08/openlogic-openjdk-8u392-b08-linux-x64.tar.gz tar -xf openlogic-openjdk-8u392-b08-linux-x64.tar.gz mv openlogic-openjdk…...
IDEA好用插件
CodeGlance Pro 右侧代码小地图 Git Commit Template git提交信息模板 IDE Eval Reset 无限试用IDEA Maven Helper 图形化展示Maven项 One Dark theme 好看的主题 SequenceDiagram 展示方法调用链 Squaretest 生成单元测试 Translation 翻译 Lombok lombok插件…...

面试官:CSS3新增了哪些新特性?
面试官:CSS3新增了哪些新特性? 一、是什么 css,即层叠样式表(Cascading Style Sheets)的简称,是一种标记语言,由浏览器解释执行用来使页面变得更美观 css3是css的最新标准,是向后兼…...
Vite5 + Vue3 + Element Plus 前端框架搭建
为了开发一套高效使用的 Vite5 + Vue3 + Element Plus 前端框架,你可以按照以下步骤进行。话不多说,先上演示地址:Vue Shop Vite。 1, 安装开发环境 开发之前,确保你的电脑已经安装了 Node.js(建议使用最新稳定版 LTS),然后安装 Vite CLI。在命令行中运行以下命令: …...

STM32 内部 EEPROM 读写
STM32 的某些系列 MCU 自带 EEPROM。笔者使用的 STM32L151RET6 自带 16 KB 的 EEPROM,可以用来存储自定义的数据。在芯片选型时,自带 EEPROM 也可以作为一个考量点,省去了在外接 EEPROM 的烦恼。 下面简单介绍下 STM32 内部 EEPROM 的读写流…...
androidStudio sync failed GradlePropertiesModel (V2)
大家在增加模块的时候经常遇到吧?重启后就好了。 Cannot get GradlePropertiesModel (V2) for project ‘GradleProject{path’:app’}’ 然而,今天开机以后,无论如何,点击gradle的大象图标(Sync Project with Gradle Files)&…...

结构方程模型(SEM)
结构方程模型(Structural Equation Modeling)是分析多变量间因果关系的利器,在众多学科领域具有巨大应用潜力。我们前期推出的《基于R语言结构方程模型》课程通过结构方程原理介绍、结构方程全局和局域估计、模型构建和调整、潜变量分析、复合…...
基于UDP的网络编程
UDP服务端 #ifdef _WIN32 #define _WINSOCK_DEPRECATED_NO_WARNINGS #define close closesocket #include <winsock2.h> #else #include <arpa/inet.h> #include <netdb.h> #include <netinet/in.h> #in…...
vue判断组件有没有传入的slot有就渲染slot没有就渲染内部节点
GPT4国内站点:海鲸AI 在 Vue 中,你可以使用 $slots 对象来检查是否有特定的插槽内容被传递给组件。Vue 3 中的 $slots 是一个对象,其中包含了所有插槽的引用。如果插槽没有内容,对应的插槽属性将会是 undefined。 下面是一个例子…...

MS713/MS713T:CMOS 低压、4Ω四路单刀单掷开关,替代ADG713
产品简述 MS713/MS713T 是一款单芯片 CMOS 4 路可选择开关,具有低 功耗、高开关速度、低导通阻抗、低漏电和高带宽特性。其工作 电压范围是 1.8V 到 5.5V ,可以广泛应用在电池供电仪器仪表、新 一代的模数转换和数模转换系统中。其高带宽特性可用在 …...

Android 内容生成pdf文件
1.引入itext7 implementation com.itextpdf:itext7-core:7.1.13上面比较大,可以直接下载需要集成的jar包 implementation files(libs\\layout-7.1.13.jar) implementation files(libs\\kernel-7.1.13.jar) implementation files(libs\\io-7.1.13.jar) implementatio…...
Javaweb-日程管理
094.日程管理第二期_准备数据库和实体类_哔哩哔哩_bilibili navicat 下载 学生认证: Navicat 教育版 - 学生许可证 | Navicat navicat连接mysql 使用navicat连接mysql数据库创建数据库、表、转储sql文件,导入sql数据_哔哩哔哩_bilibili...

SwiftUI之深入解析如何创建一个灵活的选择器
一、前言 在 Dribbble 上找到的设计的 SwiftUI 实现时,可以尝试通过一些酷炫的筛选器扩展该项目以缩小结果列表。筛选视图将由两个独立的筛选选项组成,两者都有一些可选项可供选择。但是,在使用 UIKit 时,总是将这种类型的视图实…...

【模拟量采集1.2】电阻信号采集
【模拟量采集1.2】电阻信号采集 1 怎么测?2 测输入电阻电压即转为测模拟电压值,这里需要考虑选用怎样的辅助电阻?3 实际电路分析3.1 在不考虑 VCC-5V 电压的纹波等情况时(理想化此时输入的 VCC 就是稳定的 5V)3.2 若考…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...