Node.js和Vue.js是目前非常流行的兩個技術,其中Node.js是基於JavaScript運行的伺服器端開發平台,而Vue.js則是用於建立使用者介面的漸進式框架。這兩個技術的結合可以大大提高Web應用的開發效率和使用者體驗。在本文中,我們將透過一個實際的專案來展示如何使用Node.js和Vue.js建立一個全端Web應用程式。
一、專案介紹
我們將開發一個簡單的文章發佈和管理系統,使用者可以透過註冊登入來發布文章、評論以及查看其他使用者發佈的文章。為了實現這項功能,我們將使用Node.js作為後端開發語言和技術框架,使用Vue.js作為前端開發框架,並使用MongoDB作為資料庫。
二、環境搭建
在開始開發之前,首先需要先在本機環境中建立好Node.js、Vue.js和MongoDB的開發環境。
1、安裝Node.js:可以從官網下載Node.js的安裝包進行安裝。
2、安裝Vue.js:可以使用npm命令列工具安裝Vue.js。在命令列中輸入以下命令:
npm install -g vue-cli
3、安裝MongoDB:可以從官網下載MongoDB的安裝套件並安裝。
三、專案結構
我們將專案分為前端和後端兩個部分,因此需要分別建立兩個資料夾來存放這兩部分的程式碼,我們可以在專案的根目錄下建立一個名為「node-vue-app」的資料夾來存放整個專案。
1、建立後端部分
在「node-vue-app」資料夾下建立一個名為「server」的資料夾,在該資料夾下建立一個名為「 app.js」的文件,該文件將作為我們的後端服務入口文件。同時,我們需要在「server」資料夾下建立一個名為「routes」的資料夾,用於存放路由程式碼;並在「server」資料夾下建立一個名為「models」的資料夾,用於存放資料模型代碼。
2、建立前端部分
在「node-vue-app」資料夾下建立一個名為「client」的資料夾,我們將在該資料夾下進行前端開發。可以使用Vue.js提供的命令列工具建立一個Vue.js專案:
vue init webpack client
該命令將在「client」資料夾下建立一個名為「src」的資料夾,該資料夾將包含我們的所有前端程式碼。
四、後端開發
在本案例中,我們將使用Express作為後端框架來完成RESTful API的開發。在「app.js」檔案中,我們需要引入相關模組和函式庫,並初始化Express應用程式:
const express = require('express'); const bodyParser = require('body-parser'); const mongoose = require('mongoose'); const app = express(); app.use(bodyParser.json()); mongoose.connect('mongodb://localhost:27017/node-vue-app', { useNewUrlParser: true }); mongoose.connection.once('open', () => { console.log('connected to database'); }); app.listen(3000, () => console.log('server is running on port 3000'));
1、定義資料模型
我們需要在「models」資料夾下定義我們的資料模型,建立一個名為「article.js」的檔案:
const mongoose = require('mongoose'); const Schema = mongoose.Schema; const articleSchema = new Schema({ title: String, author: String, content: String, created_at: Date, updated_at: Date }); module.exports = mongoose.model('Article', articleSchema);
在該檔案中,我們定義了一個名為「Article」的資料模型,並定義了對應的資料結構。
2、定義路由
在「routes」資料夾下建立一個名為「articles.js」的文件,我們將在該文件中定義文章相關的路由處理邏輯:
const express = require('express'); const router = express.Router(); const Article = require('../models/article'); // 获取文章列表 router.get('/', (req, res) => { Article.find((err, articles) => { if (err) { console.log(err); } else { res.json({ articles }); } }); }); // 获取单篇文章 router.get('/:id', (req, res) => { Article.findById(req.params.id, (err, article) => { if (err) { console.log(err); } else { res.json({ article }); } }); }); // 新增文章 router.post('/', (req, res) => { const article = new Article(req.body); article.save() .then(() => res.json({ success: true })) .catch(err => console.log(err)); }); // 更新文章 router.put('/:id', (req, res) => { Article.findByIdAndUpdate(req.params.id, req.body, { new: true }, (err, article) => { if (err) { console.log(err); } else { res.json({ article }); } }); }); // 删除文章 router.delete('/:id', (req, res) => { Article.findByIdAndRemove(req.params.id, (err, article) => { if (err) { console.log(err); } else { res.json({ article }); } }); }); module.exports = router;
在該檔案中,我們定義了文章相關的所有路由處理邏輯,包括取得文章清單、取得單篇文章、新增文章、更新文章和刪除文章。
五、前端開發
在本案例中,我們將使用Vue.js元件來完成前端開發。在「client/src」資料夾下建立一個名為「components」的資料夾,用於存放Vue.js元件,我們將在該資料夾下建立一個名為「Articles」的元件,該元件將實作文章清單的展示、新增、編輯和刪除:
<template> <div> <table> <thead> <tr> <th>ID</th> <th>Title</th> <th>Author</th> <th>Created At</th> <th>Updated At</th> <th>Actions</th> </tr> </thead> <tbody> <tr> <td>{{ article._id }}</td> <td>{{ article.title }}</td> <td>{{ article.author }}</td> <td>{{ article.created_at }}</td> <td>{{ article.updated_at }}</td> <td> <button>Edit</button> <button>Delete</button> </td> </tr> </tbody> </table> <div> <form> <input> <input> <textarea></textarea> <button>{{ isNew ? 'Create' : 'Update' }}</button> </form> </div> </div> </template> <script> export default { data() { return { articles: [], article: { title: '', author: '', content: '' }, isNew: true } }, created() { this.getArticles(); }, methods: { getArticles() { fetch('/api/articles') .then(res => res.json()) .then(data => this.articles = data.articles) .catch(err => console.log(err)); }, createArticle() { fetch('/api/articles', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(this.article) }) .then(res => res.json()) .then(data => { if (data.success) { this.article = { title: '', author: '', content: '' }; this.getArticles(); } }) .catch(err => console.log(err)); }, updateArticle(id) { fetch(`/api/articles/${id}`, { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(this.article) }) .then(res => res.json()) .then(data => { if (data.article) { this.article = { title: '', author: '', content: '' }; this.isNew = true; this.getArticles(); } }) .catch(err => console.log(err)); }, deleteArticle(id) { fetch(`/api/articles/${id}`, { method: 'DELETE' }) .then(res => res.json()) .then(data => { if (data.article) { this.getArticles(); } }) .catch(err => console.log(err)); }, submit() { if (this.isNew) { this.createArticle(); } else { this.updateArticle(this.article._id); } }, edit(id) { const article = this.articles.find(a => a._id === id); this.article = { ...article }; this.isNew = false; }, del(id) { const article = this.articles.find(a => a._id === id); if (window.confirm(`Are you sure to delete article: ${article.title}?`)) { this.deleteArticle(id); } } } } </script> <style> table { border-collapse: collapse; width: 100%; } td, th { border: 1px solid #ddd; padding: 8px; text-align: left; } tr:nth-child(even) { background-color: #f2f2f2; } form { display: flex; flex-direction: column; } textarea { height: 100px; } button { margin-top: 10px; padding: 8px 16px; background-color: #1E6FAF; color: #fff; border: none; border-radius: 4px; cursor: pointer; } button:hover { background-color: #15446F; } </style>
在該元件中,我們定義了一個名為「Articles」的Vue.js元件,並實作了文章清單的展示、新增、編輯和刪除功能,該元件呼叫了後端API,透過fetch()函數來取得、建立、更新和刪除文章。
六、啟動應用程式
在完成了後端和前端開發之後,我們需要啟動應用程式來驗證我們的程式碼是否正常運作。在命令列中進入專案根目錄,並分別在「server」和「client」資料夾下執行以下命令:
npm install npm start
此指令將分別啟動後端和前端服務,並在瀏覽器中開啟前端應用程式。在瀏覽器中輸入「http://localhost:8080」即可存取我們的文章發佈和管理系統。
七、總結
Node.js和Vue.js的結合可以幫助我們快速建立一個全端Web應用,並且可以實現高效的開發和良好的使用者體驗。在本文中,我們透過一個實際的專案展示如何使用Node.js和Vue.js建立一個全端Web應用,相信本文可以幫助各位開發者更能理解Node.js和Vue.js的應用。
以上是Node.js與Vue.js怎麼搭建一個全端項目的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript框架的強大之處在於簡化開發、提升用戶體驗和應用性能。選擇框架時應考慮:1.項目規模和復雜度,2.團隊經驗,3.生態系統和社區支持。

引言我知道你可能會覺得奇怪,JavaScript、C 和瀏覽器之間到底有什麼關係?它們之間看似毫無關聯,但實際上,它們在現代網絡開發中扮演著非常重要的角色。今天我們就來深入探討一下這三者之間的緊密聯繫。通過這篇文章,你將了解到JavaScript如何在瀏覽器中運行,C 在瀏覽器引擎中的作用,以及它們如何共同推動網頁的渲染和交互。 JavaScript與瀏覽器的關係我們都知道,JavaScript是前端開發的核心語言,它直接在瀏覽器中運行,讓網頁變得生動有趣。你是否曾經想過,為什麼JavaScr

Node.js擅長於高效I/O,這在很大程度上要歸功於流。 流媒體匯總處理數據,避免內存過載 - 大型文件,網絡任務和實時應用程序的理想。將流與打字稿的類型安全結合起來創建POWE

Python和JavaScript在性能和效率方面的差異主要體現在:1)Python作為解釋型語言,運行速度較慢,但開發效率高,適合快速原型開發;2)JavaScript在瀏覽器中受限於單線程,但在Node.js中可利用多線程和異步I/O提升性能,兩者在實際項目中各有優勢。

JavaScript起源於1995年,由布蘭登·艾克創造,實現語言為C語言。 1.C語言為JavaScript提供了高性能和系統級編程能力。 2.JavaScript的內存管理和性能優化依賴於C語言。 3.C語言的跨平台特性幫助JavaScript在不同操作系統上高效運行。

JavaScript在瀏覽器和Node.js環境中運行,依賴JavaScript引擎解析和執行代碼。 1)解析階段生成抽象語法樹(AST);2)編譯階段將AST轉換為字節碼或機器碼;3)執行階段執行編譯後的代碼。

Python和JavaScript的未來趨勢包括:1.Python將鞏固在科學計算和AI領域的地位,2.JavaScript將推動Web技術發展,3.跨平台開發將成為熱門,4.性能優化將是重點。兩者都將繼續在各自領域擴展應用場景,並在性能上有更多突破。

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver CS6
視覺化網頁開發工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版