NodeJs學習日志(2):windows安裝使用node.js 安裝express,suquelize,mysql,nodemon

windows安裝使用node.js 安裝express,suquelize,mysql,nodemon

系統是win10,默認已經安裝好nodejs與npm

包名作用
expressWeb應用框架
suquelize數據庫ORM
mysql數據庫
nodemon代碼熱重載

安裝express

  1. 添加express生成器
npm add express-generator@4`

在這里插入圖片描述

  1. 安裝express
npm add express 

在這里插入圖片描述

  1. 創建項目
在當前項目創建express 文件
npx  express --no-view .創建項目初始化項目,項目名稱是: projectName
npx  express --no-view projectName--no-view創建無視圖項目

在這里插入圖片描述

安裝sequelize-cli與sequelize

  1. 安裝sequelize-cli全局安裝
全局安裝
npm i -g sequelize-cli
或者本地
npm i  sequelize-cli

在這里插入圖片描述

  1. 安裝sequelize并初始化
npm install sequelize  
npx sequelize  init

在這里插入圖片描述在這里插入圖片描述

mysql

本機安裝

當然也是我寫的
https://blog.csdn.net/GoodCooking/article/details/149616098

docker安裝

復制docker-compose.yml

services:mysql:image: mysqlcontainer_name: my_mysqlrestart: unless-stoppedenvironment:MYSQL_ROOT_PASSWORD: rootMYSQL_DATABASE: mydatabaseports:- "45326:3306"volumes:- ./mysql:/var/lib/mysql
在yml文件的同級運行命令
docker-compose up -d

在這里插入圖片描述

命令解釋
services:mysql:

定義了一個名為 mysql 的服務(容器)。

    image: mysql

使用官方 [MySQL Docker 鏡像]

    container_name: my_mysql

將容器命名為 my_mysql(默認會生成隨機名稱,這里顯式指定)。

    restart: unless-stopped
 `unless-stopped` 表示容器會自動重啟,除非用戶手動停止它。
environment:MYSQL_ROOT_PASSWORD: rootMYSQL_DATABASE: mydatabase
  • MYSQL_ROOT_PASSWORD: 設置 MySQL root 用戶的密碼為 root(生產環境應使用更強的密碼)。
  • MYSQL_DATABASE: 容器啟動時自動創建名為 mydatabase 的數據庫。
    ports:- "45326:3306"
-將主機的 `45326` 端口映射到容器的 `3306` 端口(MySQL 默認端口)。
  • 外部可通過 localhost:45326主機IP:45326 訪問 MySQL。
    volumes:- ./mysql:/var/lib/mysql
  • 將主機的 ./mysql 目錄掛載到容器的 /var/lib/mysql(MySQL 數據存儲路徑)。
    • 確保數據持久化,即使容器刪除,數據仍保留在主機中。
建議運行位置

在這里插入圖片描述在這里插入圖片描述
clwy-api 是node的項目名稱,里面有app.js
docker_File 存放docker文件

可視化創建數據庫

如果使用的是docker則已經創建了一個數據庫,名稱是:mydatabase,如果本機安裝則使用其他工具鏈接到數據庫
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

有數據庫
在這里插入圖片描述
在這里插入圖片描述

修改文件用于連接到數據庫

修改config.config.json
在這里插入圖片描述
安裝mysql2

npm add mysql2

在這里插入圖片描述
在models下的index.js 添加測試連接代碼

'use strict';const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const process = require('process');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/../config/config.json')[env];
const db = {};let sequelize;
if (config.use_env_variable) {sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {sequelize = new Sequelize(config.database, config.username, config.password, config);
}// 添加連接測試
sequelize.authenticate().then(() => {console.log('MySQL 連接已成功建立');}).catch(err => {console.error('無法連接到 MySQL 數據庫:', err);process.exit(1); // 如果連接失敗,退出進程});fs.readdirSync(__dirname).filter(file => {return (file.indexOf('.') !== 0 &&file !== basename &&file.slice(-3) === '.js' &&file.indexOf('.test.js') === -1);}).forEach(file => {const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);db[model.name] = model;});Object.keys(db).forEach(modelName => {if (db[modelName].associate) {db[modelName].associate(db);}
});db.sequelize = sequelize;
db.Sequelize = Sequelize;module.exports = db;
  1. 打開app.js,在
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

上面添加
require('./models');

在這里插入圖片描述

nodemon

  1. 安裝nodemon
 npm install --save-dev nodemon

在這里插入圖片描述

  1. 修改根目錄package.json
根目錄package.json修改:
"scripts": {"start": "node app.js","dev": "nodemon app.js","test": "echo \"Error: no test specified\" && exit 1"
}

在這里插入圖片描述

  1. 啟動程序
開發模式運行
npm run dev生產模式
npm start
  1. 訪問
    在這里插入圖片描述

  2. 修改返回文件,將index.html重命名為index2.html
    在這里插入圖片描述

  3. 修改routes下的index.js

var express = require('express');
var router = express.Router();/* GET home page. */
router.get('/', function(req, res, next) {// res.render('index', { title: 'Express' });res.json({ "java": "script" });
});module.exports = router;

在這里插入圖片描述

其他包

包名功能描述安裝狀態
expressWeb框架已安裝
sequelizeORM數據庫工具已安裝
nodemon代碼熱重載已安裝
sqlitesqlite支持已安裝
bcryptjs密碼加鹽哈希未安裝
dotenv環境變量管理未安裝
jsonwebtokenJWT令牌生成未安裝
moment時間日期處理未安裝
cors跨域支持未安裝
multer文件上傳中間件未安裝
svg-captcha圖形驗證碼生成未安裝
nodemailer郵件發送服務未安裝
winston日志記錄工具未安裝
redisRedis客戶端未安裝
amqplibRabbitMQ客戶端未安裝

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/92464.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/92464.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/92464.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VueCropper 圖片裁剪組件在Vue項目中的實踐應用

VueCropper 圖片裁剪組件在Vue項目中的實踐應用 1. 組件介紹 VueCropper 是一個基于 Vue.js 的圖片裁剪組件,它提供了豐富的圖片裁剪功能,包括: 圖片縮放、旋轉、移動固定比例裁剪高質量圖片輸出多種裁剪模式選擇 2. 安裝與引入 首先需要安裝…

給同一個wordpress網站綁定多個域名的實現方法

在WordPress網站上綁定多個域名,可以通過以下幾種方法實現: 1. 修改wp-config.php文件 在wp-config.php文件中,找到define(‘WP_DEBUG’, false);,在其下方添加以下代碼: define(WP_SITEURL, http:// . $_SERVER[HT…

HarmonyOS分布式開發實戰:打造跨設備協同應用

📖 文章目錄 第一章:HarmonyOS分布式架構揭秘第二章:跨設備協同的核心技術第三章:開發環境搭建與配置第四章:實戰項目:智能家居控制系統第五章:數據同步與狀態管理第六章:性能優化與…

用 Enigma Virtual Box 把 Qt 程序壓成單文件 EXE——從編譯、收集依賴到一鍵封包

關鍵詞:Qt、windeployqt、Enigma Virtual Box、單文件、綠色軟件 為什么要打成單文件? 傳統做法:用 windeployqt 把依賴拷進 release 目錄,發給用戶一個文件夾,文件又多又亂。理想做法:把整個目錄壓成一個…

unity中實現選中人物腳下顯示圓形標識且完美貼合復雜地形(如彈坑) 的效果

要實現人物腳下圓形 完美貼合復雜地形(如彈坑) 的效果,核心思路是 「動態生成貼合地面的 Mesh」 —— 即根據地面的高度場實時計算環形頂點的 Y 坐標,讓每個頂點都 “貼” 在地面上。核心邏輯:確定環形范圍&#xff1a…

引領GameFi 2.0新范式:D.Plan攜手頂級財經媒體啟動“龍珠創意秀”

在GameFi賽道尋求新突破的今天,一個名為Dragonverse Plan(D.Plan)的項目正以其獨特的經濟模型和宏大愿景,吸引著整個Web3社區的目光。據悉,D.Plan即將聯合中文區頂級加密媒體金色財經與非小號(Feixiaohao&a…

通信算法之307:fpga之時序圖繪制

時序圖繪制軟件 一. 序言 在FPGA設計過程中,經常需要編寫設計文檔,其中,不可缺少的就是波形圖的繪制,可以直接截取Vivado或者Modelsim平臺實際仿真波形,但是往往由于信號雜亂無法凸顯重點。因此,通過相應軟…

計網學習筆記第3章 數據鏈路層(灰灰題庫)

題目 11 單選題 下列說法正確的是______。 A. 路由器具有路由選擇功能,交換機沒有路由選擇功能 B. 三層交換機具有路由選擇功能,二層交換機沒有路由選擇功能 C. 三層交換機適合異構網絡,二層交換機不適合異構網絡 D. 路由器適合異構網絡&…

SQL的LEFT JOIN優化

原sql,一個base表a,LEFT JOIN三個表抽數 SELECT ccu.*, ctr.*, om.*, of.* FROM ods.a ccu LEFT JOIN ods.b ctr ON ccu.coupon_code ctr.coupon_code AND ctr.is_deleted 0 LEFT JOIN ods.c om ON ctr.bill_code om.order_id AND om.deleted 0 LEFT JOIN ods.…

Redis 核心概念、命令詳解與應用實踐:從基礎到分布式集成

目錄 1. 認識 Redis 2. Redis 特性 2.1 操作內存 2.2 速度快 2.3 豐富的功能 2.4 簡單穩定 2.5 客戶端語言多 2.6 持久化 2.7 主從復制 2.8 高可用 和 分布式 2.9 單線程架構 2.9.1 引出單線程模型 2.9.2 單線程快的原因 2.10 Redis 和 MySQL 的特性對比 2.11 R…

【Day 18】Linux-DNS解析

目錄 一、DNS概念 1、概念和作用 2、域名解析類型 3、 軟件與服務 4、DNS核心概念 區域 記錄 5、查詢類型 6、分層結構 二、DNS操作 配置本機為DNS內網解析服務器 (1)修改主配置文件 (2)添加區域 正向解析區域: …

Python 中 OpenCV (cv2) 安裝與使用介紹

Python 中 OpenCV (cv2) 安裝與使用詳細指南 OpenCV (Open Source Computer Vision Library) 是計算機視覺領域最流行的庫之一。Python 通過 cv2 模塊提供 OpenCV 的接口。 一、安裝 OpenCV 方法 1:基礎安裝(推薦) # 安裝核心包&#xff0…

微軟WSUS替代方案

微軟WSUS事件回顧2025年7月10日,微軟最新確認Windows Server Update Services(WSUS)出現了問題,導致IT管理員無法正常同步和部署Windows更新。WSUS是允許管理員根據策略配置,將更新推送到特定計算機,并優化…

Minio 分布式集群安裝配置

目錄創建 mkdir -p /opt/minio/run && mkdir -p /etc/minio && mkdir -p /indata/disk_0/minio/datarun:啟動腳本及二進制文件目錄/etc/minio:配置文件目錄data:數據存儲目錄下載 minio wget https://dl.min.io/server/minio…

Spring Boot + ShardingSphere 實現分庫分表 + 讀寫分離實戰

🚀 Spring Boot ShardingSphere 實現分庫分表 讀寫分離(涵蓋99%真實場景) 🏷? 標簽:ShardingSphere、分庫分表、讀寫分離、MySQL 主從、Spring Boot 實戰 分庫分表 vs 讀寫分離 vs 主從配置與數據庫高可用架構區別 …

將普通用戶添加到 Docker 用戶組

這樣可以避免每次使用 Docker 命令時都需要 sudo。以下是具體步驟:1. 創建 Docker 用戶組(如果尚未存在) 默認情況下,安裝 Docker 時會自動創建 docker 用戶組。可以通過以下命令檢查: groupadd docker(如果…

Scrapy(一):輕松爬取圖片網站內容?

目錄 一、CrawlSpider 簡介? 二、實戰案例:圖片網站爬取? 三、代碼解析:核心組件詳解? 類定義: 2.核心屬性:? 3.爬取規則(Rules):? 4.數據提取方法(parse_item)…

使用 systemd 的原生功能來實現 Redis 的自動監控和重啟,而不是依賴額外的腳本最佳實踐方案

使用 systemd 的原生功能來實現 Redis 的自動監控和重啟,而不是依賴額外的腳本最佳實踐方案方案 1:配置 systemd 服務文件(推薦)1. 檢查/創建 Redis 的 systemd 服務文件2. 配置關鍵參數(覆蓋配置示例)3. 重…

Eclipse 代碼模板

Eclipse 代碼模板 引言 Eclipse 作為一款功能強大的集成開發環境(IDE),深受廣大開發者的喜愛。在編程過程中,使用代碼模板可以大大提高開發效率,減少重復勞動。本文將詳細介紹 Eclipse 代碼模板的配置、使用方法以及一…

輸電線路防外破聲光預警裝置 | 防山火/防釣魚/防施工安全警示系統

在輸電網絡的安全保障中,外力破壞是一個不容忽視的問題,各類隱患可能對電力系統造成嚴重影響。TLKS-PMG-WP 輸電線路聲光防外破警示裝置在應對這類挑戰時,有著獨特的技術表現,下面從功能和技術參數兩方面進行詳細介紹。核心功能解…