NodeJs学习日志(1):windows安装使用node.js 安装express,suquelize,sqlite,nodemon

发布于:2025-08-07 ⋅ 阅读:(17) ⋅ 点赞:(0)

windows安装使用node.js 安装express,suquelize,sqlite

系统是win10,默认已经安装好nodejs与npm

包名 作用
express Web应用框架
suquelize 数据库ORM
sqlite 数据库
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

在这里插入图片描述在这里插入图片描述

sqlite

  1. 下载sqlite包,解压后在解压目录运行,会创建 testdb_1.db 数据库

在这里插入图片描述

解压拷贝到新的文件夹
在这里插入图片描述

  1. 生成数据库
 .\sqlite3.exe testdb_1.db
 .databases

然后按两次ctrl+C退出

在这里插入图片描述

  1. 安装数据库sqlie
npm install sqlite3@5.0.0

在这里插入图片描述

  1. 复制testdb_1.db文件app.js同级目录,创建db放到里面。
    在这里插入图片描述

  2. 修改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);
// }
 


let sequelize;
if (config.use_env_variable) {
  sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
  sequelize = new Sequelize({
    dialect: 'sqlite',
    storage: config.storage, // 确保config.json中有storage字段
    logging: console.log // 显示SQL日志
  });
}



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;


// 替换原来的 testConnection
const testConnection = async () => {
  try {
    await sequelize.authenticate();
    console.log('✅ 数据库连接成功');
    console.log(`📁 数据库文件: ${path.resolve(config.storage)}`);
    
    // 验证文件是否存在
    if (fs.existsSync(path.resolve(config.storage))) {
      console.log('🔍 数据库文件已创建');
    } else {
      console.log('⚠️ 注意:数据库文件尚未生成,将在首次操作时创建');
    }
  } catch (error) {
    console.error('❌ 连接失败:', error.message);
    process.exit(1); // 退出进程
  }
};

// 立即调用并处理Promise
testConnection().catch(err => console.error('Unhandled error:', err));


module.exports = db;


  1. 修改config文件,路径在app.js同级的config/config.js
    "storage": "./db/testdb_1.db"为数据库路径和名称
    "database": "testdb_1" , 是数据库名称
    这里仅修改开发环境,其他环境根据实际修改
    在这里插入图片描述
修改config.js,注意路径
{
  "development": {
    "username": "root",
    "password": null,
    "database": "testdb_1",
    "dialect": "sqlite",
    "host": "127.0.0.1",
    "storage": "./db/testdb_1.db"
  },
  "test": {
    "username": "root",
    "password": null,
    "database": "database_test",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "production": {
    "username": "root",
    "password": null,
    "database": "database_production",
    "host": "127.0.0.1",
    "dialect": "mysql"
  }
}

  1. 打开app.js,在
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

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

  1. 在最后添加
// 启动服务器
const PORT=3000;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

在这里插入图片描述

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. 访问

在这里插入图片描述
5. 修改返回文件,将index.html重命名为index2.html
在这里插入图片描述

  1. 修改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;

在这里插入图片描述

其他包

包名 功能描述 安装状态
express Web框架 已安装
sequelize ORM数据库工具 已安装
nodemon 代码热重载 已安装
sqlite sqlite支持 已安装
bcryptjs 密码加盐哈希 未安装
dotenv 环境变量管理 未安装
jsonwebtoken JWT令牌生成 未安装
moment 时间日期处理 未安装
cors 跨域支持 未安装
multer 文件上传中间件 未安装
svg-captcha 图形验证码生成 未安装
nodemailer 邮件发送服务 未安装
winston 日志记录工具 未安装
redis Redis客户端 未安装
amqplib RabbitMQ客户端 未安装

网站公告

今日签到

点亮在社区的每一天
去签到