찾다
웹 프론트엔드프런트엔드 Q&ANode.js와 SQL을 페이지 계층화와 결합하여 동적 웹사이트 개발을 달성하는 방법

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 -->
nbsp;html>


  <title>Node.js 实现 SQL 和页面分层</title>
  <link>


  

  <div>
    <h1 id="欢迎来到我的网站">欢迎来到我的网站!</h1>
    <p></p>
  </div>

  

  <script></script>
  <script></script>

可以看到,在 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으로 문의하세요.
클래스와 ID 선택기 사이의 시상은 무엇입니까?클래스와 ID 선택기 사이의 시상은 무엇입니까?May 12, 2025 am 12:13 AM

classselectorsareversatiledreusable, whileDselectorsareUniqueAndspecific.1) USECLASSSELECTORS (DENOTEDBY.) ForstylingMultipleElementSwithSharedCharacteristics

CSS IDS 대 클래스 : 실제 차이점CSS IDS 대 클래스 : 실제 차이점May 12, 2025 am 12:10 AM

idsareUniqueIndifiersforsinglelemes, whileclassesstylemultipleements.1) useidsforuniqueElements 및 Javascripthooks.2) useclassessforusable, flexiblestylingacrossmultipleelements.

CSS : 클래스 만 사용하면 어떻게됩니까?CSS : 클래스 만 사용하면 어떻게됩니까?May 12, 2025 am 12:09 AM

클래스 전용 선택기를 사용하면 코드 재사용 성과 유지 관리가 향상 될 수 있지만 클래스 이름 및 우선 순위를 관리해야합니다. 1. 재사용 성과 유연성 향상, 2. 여러 클래스를 결합하여 복잡한 스타일을 만들고, 3. 긴 클래스 이름과 우선 순위로 이어질 수 있습니다.

CSS의 ID 및 클래스 선택기 : 초보자 안내서CSS의 ID 및 클래스 선택기 : 초보자 안내서May 12, 2025 am 12:06 AM

ID 및 클래스 선택기는 각각 고유 및 멀티 요소 스타일 설정에 CSS에서 사용됩니다. 1. ID 선택기 (#)는 특정 탐색 메뉴와 같은 단일 요소에 적합합니다. 2. 클래스 선택기 (.)는 통합 버튼 스타일과 같은 여러 요소에 사용됩니다. ID는주의해서 사용하고 과도한 특이성을 피하며 스타일 재사용 성과 유연성을 향상시키기 위해 클래스를 우선시해야합니다.

HTML5 사양 이해 : 주요 목표 및 이점HTML5 사양 이해 : 주요 목표 및 이점May 12, 2025 am 12:06 AM

HTML5의 주요 목표와 장점은 다음과 같습니다. 1) 개선 된 웹 의미 론적 구조, 2) 멀티미디어 지원 향상 및 3) 교차 플랫폼 호환성 홍보. 이러한 목표는 더 나은 접근성, 더 풍부한 사용자 경험 및보다 효율적인 개발 프로세스로 이어집니다.

HTML5의 목표 : 웹의 미래에 대한 개발자 가이드HTML5의 목표 : 웹의 미래에 대한 개발자 가이드May 11, 2025 am 12:14 AM

HTML5의 목표는 개발 프로세스를 단순화하고 사용자 경험을 향상 시키며 동적 및 액세스 가능한 네트워크를 보장하는 것입니다. 1) 오디오 및 비디오 요소를 기본적으로 지원하여 멀티미디어 컨텐츠의 개발을 단순화합니다. 2) 콘텐츠 구조와 SEO 친근감을 향상시키기위한 의미 론적 요소 등을 소개합니다. 3) 애플리케이션 캐시를 통해 오프라인 함수 향상; 4) 요소를 사용하여 페이지 상호 작용을 향상시킵니다. 5) 모바일 호환성을 최적화하고 반응 형 디자인을 지원합니다. 6) 형태 기능을 개선하고 검증 프로세스를 단순화합니다. 7) Async 및 Defer 속성과 같은 성능 최적화 도구를 제공하십시오.

HTML5 : 새로운 기능과 기능으로 웹 변환HTML5 : 새로운 기능과 기능으로 웹 변환May 11, 2025 am 12:12 AM

html5transformswebdevelopment는 소개 antranticlementements, multimediacapabilities, andperformanceoptimizationtools.1) semanticlements likes ,, andenhanceseoandaccessibility.2) multimediaElements and withoutplugins, iceveringue

CSS의 ID 대 수업 : 포괄적 인 비교CSS의 ID 대 수업 : 포괄적 인 비교May 11, 2025 am 12:12 AM

TherealDifferenceBet weenusinganidversusaClassincssissiSTIDSAREUNIQUENDHAVEHIGHERSPECIFIC, WHELECLASSEREEREUSABLEADBETTERSTYLINGMULTIPLEEMENTES.USEIDSFORJAVASFORJAVASCRICTSORUNIQUELEMENTS, AndUSECLASSESFORSTYLINGPURES

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.