>  기사  >  웹 프론트엔드  >  Node.js와 SQL을 페이지 계층화와 결합하여 동적 웹사이트 개발을 달성하는 방법

Node.js와 SQL을 페이지 계층화와 결합하여 동적 웹사이트 개발을 달성하는 방법

PHPz
PHPz원래의
2023-04-05 10:31:26703검색

Node.js는 서버 측에서 실행되는 JavaScript입니다.
SQL은 관계형 데이터베이스를 관리하는 데 사용되는 구조화된 쿼리 언어입니다. 이 두 가지 기술을 결합하면 동적 웹사이트를 개발할 수 있습니다.

동적 웹사이트를 개발할 때는 데이터베이스와 연결을 설정하고 SQL 문을 실행하여 데이터를 읽고 써야 합니다. Node.js에서는 데이터베이스에 연결하는 데 도움이 되는 많은 모듈을 사용할 수 있으며, 가장 널리 사용되는 모듈은 mysql 모듈입니다. mysql 模块。

页面分层指的是将前端的 HTML、CSS 和 JavaScript 代码分成多个层次,每个层次的代码职责不同。这样做的好处是可以更好地组织代码,提高代码可维护性。

下面我们来介绍如何将 Node.js 和 SQL 与页面分层结合起来实现动态网站的开发。

1. 项目结构

为了更好地组织代码,我们需要将代码分成多个层次。下面是项目的目录结构:

myapp/
├── app.js
├── package.json
├── node_modules/
├── public/
│   ├── css/
│   │   └── style.css
│   ├── js/
│   │   ├── main.js
│   │   └── jquery.min.js
│   └── img/
│       └── logo.png
└── views/
    ├── index.html
    ├── header.html
    ├── footer.html
    └── error.html
  • app.js:项目的入口文件。
  • package.json:项目的配置文件。
  • node_modules/:存放项目所需的模块。
  • public/:存放静态文件,如 CSS、JavaScript 和图片等。
  • views/:存放 HTML 模板文件。

2. 数据库连接

app.js 中,我们需要连接数据库。使用 mysql 模块连接 MySQL 数据库的代码如下:

const mysql = require('mysql');

// 创建连接
const connection = mysql.createConnection({
  host: 'localhost',  // 数据库主机地址
  user: 'root',       // 数据库用户名
  password: '123456', // 数据库密码
  database: 'myapp'   // 数据库名称
});

// 连接数据库
connection.connect((err) => {
  if (err) {
    console.error('连接数据库失败:', err);
    return;
  }
  console.log('连接数据库成功');
});

// 关闭连接
connection.end((err) => {
  if (err) {
    console.error('关闭连接失败:', err);
    return;
  }
  console.log('关闭连接成功');
});

3. 数据库操作

连接数据库之后,我们就可以执行 SQL 语句来读写数据了。下面是一个简单的例子,向数据库中插入一条数据:

const sql = 'INSERT INTO users SET ?';
const data = { username: 'test', password: '123456' };
connection.query(sql, data, (err, results, fields) => {
  if (err) {
    console.error('插入数据失败:', err);
    return;
  }
  console.log('插入数据成功');
});

这里使用了 query 方法来执行 SQL 语句。第一个参数是 SQL 语句,第二个参数是要插入的数据,以对象的形式表示。

4. 页面分层

views 目录中,我们存放网站的 HTML 模板文件。这些模板文件通过模板引擎来渲染成最终的 HTML 页面。

我们使用 ejs 模板引擎来渲染 HTML 模板。下面是一个简单的例子:

<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
  <title>Node.js 实现 SQL 和页面分层</title>
  <link rel="stylesheet" href="/css/style.css">
</head>
<body>
  <% include header.html %>

  <div class="container">
    <h1>欢迎来到我的网站!</h1>
    <p><%= message %></p>
  </div>

  <% include footer.html %>

  <script src="/js/jquery.min.js"></script>
  <script src="/js/main.js"></script>
</body>
</html>

可以看到,在 HTML 中使用 <% %><%= %> 来插入 JavaScript 代码。include 指令用来引入其他的 HTML 模板文件。

在 Node.js 中,使用 ejs 模块来渲染 HTML 模板。下面是一个例子:

const ejs = require('ejs');
const fs = require('fs');

const template = fs.readFileSync('views/index.html', 'utf8');
const data = { message: '欢迎访问我的网站!' };
const html = ejs.render(template, data);

console.log(html);

这段代码将 views/index.html 模板文件读取进来,使用对象 { message: '欢迎访问我的网站!' }

페이지 레이어링은 프런트 엔드 HTML, CSS 및 JavaScript 코드를 여러 수준으로 나누는 것을 의미하며, 각 수준에는 서로 다른 코드 책임이 있습니다. 이것의 장점은 코드를 더 잘 구성할 수 있고 코드 유지 관리 가능성을 향상시킬 수 있다는 것입니다.

Node.js와 SQL을 페이지 레이어링과 결합하여 동적 웹사이트를 개발하는 방법을 소개하겠습니다.

1. 프로젝트 구조🎜🎜코드를 더 잘 구성하려면 코드를 여러 수준으로 나누어야 합니다. 다음은 프로젝트의 디렉터리 구조입니다. 🎜rrreee
  • app.js: 프로젝트의 항목 파일입니다.
  • package.json: 프로젝트 구성 파일.
  • node_modules/: 프로젝트에 필요한 모듈을 저장합니다.
  • public/: CSS, JavaScript, 이미지와 같은 정적 파일을 저장합니다.
  • views/: HTML 템플릿 파일을 저장합니다.
🎜2. 데이터베이스 연결🎜🎜app.js에서 데이터베이스에 연결해야 합니다. mysql 모듈을 사용하여 MySQL 데이터베이스에 연결하는 코드는 다음과 같습니다. 🎜rrreee🎜3. 데이터베이스 작업🎜🎜 데이터베이스에 연결한 후 SQL 문을 실행하여 데이터를 읽고 쓸 수 있습니다. 다음은 데이터베이스에 데이터를 삽입하는 간단한 예입니다. 🎜rrreee🎜 여기서는 query 메서드를 사용하여 SQL 문을 실행합니다. 첫 번째 매개변수는 SQL문이고, 두 번째 매개변수는 삽입할 데이터로 객체 형태로 표현된다. 🎜🎜4. 페이지 레이어링🎜🎜 views 디렉토리에는 웹사이트의 HTML 템플릿 파일이 저장됩니다. 이러한 템플릿 파일은 템플릿 엔진에 의해 최종 HTML 페이지로 렌더링됩니다. 🎜🎜우리는 ejs 템플릿 엔진을 사용하여 HTML 템플릿을 렌더링합니다. 다음은 간단한 예입니다. 🎜rrreee🎜보시다시피 HTML에서 <% %><%= %>를 사용하여 JavaScript 코드를 삽입하세요. include 지시어는 다른 HTML 템플릿 파일을 소개하는 데 사용됩니다. 🎜🎜Node.js에서는 ejs 모듈을 사용하여 HTML 템플릿을 렌더링합니다. 예는 다음과 같습니다. 🎜rrreee🎜이 코드는 views/index.html 템플릿 파일을 읽고 { 메시지 개체를 사용합니다. '내 웹사이트에 오신 것을 환영합니다! ' } 템플릿을 렌더링하고 마지막으로 최종 HTML 페이지를 생성합니다. 🎜🎜5. 요약🎜🎜위 소개를 통해 Node.js와 SQL을 페이지 레이어링과 결합하여 동적 웹사이트를 개발하는 방법을 배웠습니다. 실제 프로젝트에는 ORM 프레임워크, Webpack, Gulp 등 사용할 수 있는 기술과 도구가 더 많아 개발 효율성과 코드 품질을 크게 향상시킬 수 있습니다. 🎜

위 내용은 Node.js와 SQL을 페이지 계층화와 결합하여 동적 웹사이트 개발을 달성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.