21xrx.com
2024-12-22 19:41:47 Sunday
登录
文章检索 我的文章 写文章
NodeJS实现留言板
2023-07-10 19:55:33 深夜i     --     --
NodeJS 留言板 实现 后端 数据库

NodeJS是一种流行的JavaScript运行环境,它可以在服务器端运行JavaScript代码。由于其灵活性和强大的功能,NodeJS已经成为开发人员喜欢的工具之一。其中一个最常见的用途是开发Web应用程序。

在这篇文章中,我们将介绍如何使用NodeJS创建一个简单的留言板。留言板是一个常见的Web应用程序,它允许用户在网站上留下评论或消息。我们将使用NodeJS和一些其他工具来创建这个应用程序。

首先,我们需要创建一个NodeJS项目并安装必要的依赖项。打开终端并输入以下命令:


mkdir guestbook

cd guestbook

npm init -y

npm install express body-parser ejs sqlite3 --save

这将创建一个名为guestbook的新目录并在其中生成package.json文件。然后安装了Express、Body Parser、EJS和SQLite3依赖库。

接下来,我们将使用Express框架来创建Web应用程序的初始设置。在guestbook目录的根部创建一个名为index.js的文件,然后编写以下代码:


const express = require('express');

const bodyParser = require('body-parser');

const app = express();

app.set('view engine', 'ejs');

app.use(bodyParser.urlencoded({ extended: true }));

app.use(express.static('public'));

app.listen(3000, () => {

 console.log('Guestbook server listening on port 3000!');

});

代码解读:

- 我们引入了需要的包和依赖项Express、Body Parser和EJS。

- 我们创建一个Express应用程序对象并配置了我们的视图引擎EJS。

- 为了支持POST请求,我们使用了Body Parser中的urlencoded()方法。

- 最后,我们将应用程序的根目录指定为public,并监听在本地主机的端口3000上。

现在我们已经设置了Web应用程序的基本需求,现在我们可以开始添加留言板的功能。首先,我们将创建一个SQLite数据库来存储网站的留言。 SQLite是一种轻量级的数据库,它非常适合小型Web应用程序的需求。我们使用SQLite3依赖项与NodeJS集成。在index.js文件中添加以下代码:


const sqlite3 = require('sqlite3').verbose();

const db = new sqlite3.Database('./guestbook.db');

db.serialize(() => {

 db.run("CREATE TABLE IF NOT EXISTS messages (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, message TEXT, timestamp DATETIME DEFAULT CURRENT_TIMESTAMP)");

});

app.get('/', (req, res) => {

 db.all("SELECT * FROM messages ORDER BY timestamp DESC", [], (err, messages) => {

  res.render('index', { messages: messages });

 });

});

app.post('/', (req, res) => {

 const name = req.body.name.trim();

 const message = req.body.message.trim();

 if (name && message) {

  db.run("INSERT INTO messages (name, message) VALUES (?,?)", [name, message]);

 }

 res.redirect('/');

});

代码解读:

- 我们使用SQLite3依赖项创建了一个guestbook.db数据库文件。

- 我们指定了guestbook数据库文件中的一张名为“messages”的表,并创建了名为id、name、message和timestamp的四个字段。

- 我们使用db.all()方法来查询并检索所有列表中存储的消息。

- 在表单提交后,我们使用req.body对象来提取表单的值。

- 如果已完成name和message字段的验证,则使用db.run()方法将数据插入数据库中。

- 在数据写入数据库后,我们将用户重定向回主页。

最后,我们需要在public文件夹中创建一个名为index.ejs的文件,该文件将渲染页面和留言。让我们编写以下代码:


<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>Guestbook</title>

 </head>

 <body>

  <h1>Guestbook</h1>

  <form method="post" action="/">

   <input type="text" name="name" placeholder="Your Name" />

   <input type="text" name="message" placeholder="Your Message" />

   <input type="submit" value="Leave Message" />

  </form>

  <% if (messages.length > 0) { %>

   <ul>

    <% messages.forEach((message) => { %>

     <li><%= message.message %> - <%= message.name %> / <%= message.timestamp %></li>

    <% }); %>

   </ul>

  <% } else { %>

   <p>No messages yet.</p>

  <% } %>

 </body>

</html>

代码解读:

- 我们创建了一个名为“Guestbook”的标题。

- 我们创建了一个表单用于提交新留言。

- 如果网站中有留言,则我们使用EJS的forEach()方法在页面上列出了所有留言。

- 如果没有留言,则显示一个“无留言”消息。

现在请尝试使用npm start启动服务器。如果一切顺利,访问http://localhost:3000/即可查看你的留言板。

总结

在本文中,我们介绍了如何使用NodeJS、Express和SQLite3等工具创建一个简单的留言板应用程序。使用NodeJS和这些工具,开发人员可以快速开发出功能丰富且具有扩展性的Web应用程序。希望本文对初学者有所帮助,也希望此文章能够激发更多的创意和想法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复