Vue-Node-SQLite3 是一个前后端一体化的数据存储解决方案,它使用Vue.js作为前端框架,Node.js作为后端框架,以及SQLite3作为数据库。
以下是一个简单的示例,展示如何使用Vue-Node-SQLite3来创建一个简单的ToDo应用。
后端设置(Node.js)
安装依赖:
npm install express sqlite3 express-sqlite3
创建server.js
文件,并设置基本的Express服务器和SQLite数据库连接:
const express = require('express');
const sqlite3 = require('sqlite3').verbose();
const app = express();
const port = 3000;
// 初始化数据库
const db = new sqlite3.Database('./db.sqlite3', (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to the SQLite database.');
});
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Server running on port ${port}`);
});
前端设置(Vue.js)
安装依赖:
npm install axios
创建Vue组件,并使用axios进行数据请求:
<template>
<div>
<input v-model="newItem" @keyup.enter="addItem" placeholder="Add item">
<ul>
<li v-for="item in items" :key="item.id">
{{ item.text }}
</li>
</ul>
</div>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
newItem: '',
items: []
};
},
methods: {
async addItem() {
if (this.newItem.trim() === '') {
return;
}
const item = { text: this.newItem.trim() };
await axios.post('/items', item);
this.newItem = '';
this.fetchItems();
},
async fetchItems() {
const response = await axios.get('/items');
this.items = response.data;
}
},
created() {
this.fetchItems();
}
};
</script>
API路由(Node.js)
在server.js
中添加路由以处理ToDo项的创建和读取:
const express = require('express');
const sqlite3 = require('sqlite3').verbose();
const app = express();
const port = 3000;
const db = new sqlite3.Database('./db.sqlite3');
app.use(express.json());
app.get('/items', (req, res) => {
db.all('SELECT * FROM items', (err, rows) => {
if (err) {
throw err;
}
res.status(200).json(rows);
});
});
app.post('/items', (req, res) => {
const item = req.body;
db.run('INSERT INTO items (text) VALUES