使用sqlite表达REST REST API简单CRUD
#javascript #node #express #restapi

node.js 是一个运行时环境,可以在服务器端使用JavaScript。它是基于Google Chrome的V8 JavaScript引擎构建的,并提供了许多功能和API,使其易于使用JavaScript开发服务器端应用程序。 Node.js设计为高度可扩展和高效,使其在构建实时Web应用程序和其他网络应用程序中流行。

另一方面,

express.js 是Node.js流行的Web框架,可提供一组用于构建Web应用程序和API的功能和工具。它建立在Node.js的顶部,并提供了一种简单而灵活的方法来处理HTTP请求,路由URL和过程数据。 Express.js是高度可定制的,允许开发人员构建各种各样的Web应用程序,从小型,简单的网站到大型,复杂的Web应用程序。

简而言之,Node.js提供了用于在服务器端执行JavaScript代码的运行时环境,而Express.js则提供了使用Node.js构建Web应用程序和API的框架。他们一起为使用JavaScript开发服务器端应用程序提供了一个强大而灵活的平台。

入门

要创建一个新的express.js项目,您可以按照以下步骤操作:

确保您的计算机上安装了node.js。您可以从官方网站下载它:https://nodejs.org/

打开终端或命令提示符,并为您的项目创建一个新目录:

mkdir my-express-project

导航到新创建的目录:

cd my-express-project

使用以下命令初始化一个新的node.js项目:

npm init

这将在您的项目目录中创建一个package.json文件。

使用以下命令安装快递软件包:

npm install express

这将下载并安装Express软件包,并将其添加到您的项目的软件包。JSON文件作为依赖项。

在您的项目目录中创建一个名为app.js或index.js的新文件,然后在文本编辑器中打开。

在app.js或index.js文件中,添加以下代码:

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(port, () => {
  console.log(`Server listening on port ${port}`);
});

这设置了一个简单的express.js服务器,该服务器在端口3000上听,并用消息“ Hello World!”响应root URL(/)的请求。

通过在终端中运行以下命令来启动服务器:

node app.js

您应该在终端中看到一条消息,指示服务器在端口3000上收听。

打开您的网络浏览器,然后转到http://localhost:3000。您应该看到消息“ Hello World!”显示在您的浏览器中。
恭喜!您现在创建了一个简单的Express.js项目。

现在让我们创建API

让我们安装序列化和sqlite软件包

sqlite是一种免费的,开源,轻巧且独立的数据库管理系统,用于在关系数据库中存储和管理数据。与其他传统数据库管理系统(如MySQL,Oracle或PostgreSQL)不同,SQLite是一个无服务器的数据库,它嵌入了应用程序中的应用程序,使其易于使用和使用。

>

sqlite将数据存储在一个文件中,这是不需要大量数据存储或高水平并发的中小型应用程序的绝佳选择。它也是跨平台,并且在Windows,Linux,MacOS等各种操作系统上运行。

sqlite支持SQL,这是一种用于管理关系数据库的标准语言,并提供了许多功能,例如酸性交易,索引,触发器和视图,这些功能是在其他数据库管理系统中常见的。 SQLite在许多应用程序中广泛使用,包括桌面软件,移动应用程序,Web应用程序和嵌入式系统。

npm install sequelize sqlite3

简单的用户表名称,电子邮件和密码以执行创建用户,获取所有用户,编辑用户,删除用户。

const express = require('express');
const bodyParser = require('body-parser');
const { Sequelize, Model, DataTypes } = require('sequelize');

const app = express();
const port = 3000;

// Create Sequelize instance
const sequelize = new Sequelize({
  dialect: 'sqlite',
  storage: './database.sqlite'
});

// Define User model
class User extends Model {}
User.init({
  name: DataTypes.STRING,
  email: DataTypes.STRING,
  password: DataTypes.STRING
}, { sequelize, modelName: 'user' });

// Sync models with database
sequelize.sync();

// Middleware for parsing request body
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// CRUD routes for User model
app.get('/users', async (req, res) => {
  const users = await User.findAll();
  res.json(users);
});

app.get('/users/:id', async (req, res) => {
  const user = await User.findByPk(req.params.id);
  res.json(user);
});

app.post('/users', async (req, res) => {
  const user = await User.create(req.body);
  res.json(user);
});

app.put('/users/:id', async (req, res) => {
  const user = await User.findByPk(req.params.id);
  if (user) {
    await user.update(req.body);
    res.json(user);
  } else {
    res.status(404).json({ message: 'User not found' });
  }
});

app.delete('/users/:id', async (req, res) => {
  const user = await User.findByPk(req.params.id);
  if (user) {
    await user.destroy();
    res.json({ message: 'User deleted' });
  } else {
    res.status(404).json({ message: 'User not found' });
  }
});

// Start server
app.listen(port, () => {
  console.log(`Server listening on port ${port}`);
});

恭喜! ð
API准备在前端消费。

如果你喜欢

你可以给我买咖啡
https://www.buymeacoffee.com/mayankjhawar

在Patreon支持我
https://patreon.com/mayank120