Nodejs 新手问题,我需要用node.js express 构建一个普通企业型 网站 但是不知道用什么数据库好?

Nodejs 新手问题,我需要用node.js express 构建一个普通企业型 网站 但是不知道用什么数据库好?

本人 草鸟……关于nodejs怎么操作数据库还不是很了解……求各位指点……

14 回复

当然可以!在构建一个企业级网站时,选择合适的数据库非常重要。Node.js 生态系统中常用的数据库有关系型数据库(如 MySQL、PostgreSQL)和非关系型数据库(如 MongoDB)。下面我会分别介绍这两种类型的数据库,并提供一些简单的示例代码。

1. 关系型数据库:MySQL

如果你需要一个结构化、事务性较强的数据库,MySQL 是一个不错的选择。你可以使用 mysql 模块来连接和操作 MySQL 数据库。

安装依赖

npm install express mysql

示例代码

const express = require('express');
const mysql = require('mysql');

// 创建数据库连接
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'mydatabase'
});

connection.connect((err) => {
  if (err) throw err;
  console.log('Connected to the database.');
});

const app = express();

app.get('/users', (req, res) => {
  connection.query('SELECT * FROM users', (error, results, fields) => {
    if (error) throw error;
    res.json(results);
  });
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

2. 非关系型数据库:MongoDB

如果你更倾向于灵活的数据模型和易于扩展的特性,MongoDB 是一个很好的选择。你可以使用 mongoose 模块来连接和操作 MongoDB 数据库。

安装依赖

npm install express mongoose

示例代码

const express = require('express');
const mongoose = require('mongoose');

// 连接到 MongoDB
mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true });

const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
  console.log('Connected to MongoDB.');
});

// 定义用户模型
const UserSchema = new mongoose.Schema({
  name: String,
  email: String
});

const User = mongoose.model('User', UserSchema);

const app = express();

app.get('/users', async (req, res) => {
  const users = await User.find();
  res.json(users);
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

总结

  • MySQL:适合需要强一致性和事务支持的应用。
  • MongoDB:适合需要灵活数据模型和高可扩展性的应用。

根据你的具体需求选择合适的数据库,并参考上述示例代码进行开发。希望这对你有所帮助!


mongodb 或者mysql

mysql 不推荐上来就用 非关系型

这个帖子怎么有种统计各种数据库使用情况的感觉。。。

为什么这么多mysql? 我推荐 mongoDB

MongoDB +1

推荐mysql

看数据的结构形式吧, 重点是适合

适合自己的才是最好的

对于初学者来说,选择合适的数据库是构建网站的重要一步。在Node.js与Express项目中,常用的数据库有MongoDB、MySQL和PostgreSQL等。这里我会简要介绍这三种数据库,并提供一些基本的代码示例。

  1. MongoDB:是一种NoSQL文档数据库,非常适合处理大量非结构化数据。它使用JSON-like文档存储数据。mongoose是MongoDB的一个对象模型工具,可以简化数据的访问和操作。

    示例代码:

    // 安装mongoose
    npm install mongoose
    
    const mongoose = require('mongoose');
    mongoose.connect('mongodb://localhost:27017/mydatabase', {useNewUrlParser: true, useUnifiedTopology: true});
    
    const userSchema = new mongoose.Schema({
      name: String,
      email: String
    });
    
    const User = mongoose.model('User', userSchema);
    
    // 创建用户
    const newUser = new User({name: 'John Doe', email: 'john@example.com'});
    newUser.save().then(() => console.log('User saved!'));
    
  2. MySQL:一种关系型数据库,广泛用于传统的企业级应用。Node.js通常使用mysqlmysql2库来连接MySQL数据库。

    示例代码:

    // 安装mysql
    npm install mysql
    
    const mysql = require('mysql');
    
    const connection = mysql.createConnection({
      host: 'localhost',
      user: 'root',
      password: 'password',
      database: 'mydatabase'
    });
    
    connection.connect((err) => {
      if (err) throw err;
      console.log('Connected!');
    });
    
    // 插入数据
    const query = 'INSERT INTO users SET ?';
    connection.query(query, {name: 'Jane Doe', email: 'jane@example.com'}, (err, result) => {
      if (err) throw err;
      console.log('Record inserted!');
    });
    
  3. PostgreSQL:另一种流行的关系型数据库,强调可扩展性和兼容性,适用于需要复杂查询的应用场景。Node.js可以通过pg库进行连接。

    示例代码:

    // 安装pg
    npm install pg
    
    const { Pool } = require('pg');
    
    const pool = new Pool({
      user: 'postgres',
      host: 'localhost',
      database: 'mydatabase',
      password: 'password',
      port: 5432,
    });
    
    pool.query('INSERT INTO users(name, email) VALUES($1, $2)', ['Mike Smith', 'mike@example.com'], (err, res) => {
      if (err) throw err;
      console.log('Record inserted!');
    });
    

以上就是三种常见的数据库及其简单的使用示例。根据你的具体需求(如是否需要存储复杂的数据结构、对事务处理的需求等),可以选择最适合你的数据库类型。

回到顶部