knex sqlite express insert 数据示例
时间: 2024-10-17 14:09:34 浏览: 29
在使用Knex、SQLite和Express一起工作时,你可以通过以下步骤来插入数据:
首先,确保你安装了必要的依赖项:
```bash
npm install knex sqlite3 express
```
然后,创建一个简单的Express应用并设置Knex连接:
```javascript
// server.js 或 app.js
const express = require('express');
const knex = require('knex')({
client: 'sqlite3',
connection: {
filename: 'mydatabase.db'
},
useNullAsDefault: true, // 如果你想让Knex处理NULL作为默认值
});
const app = express();
app.use(express.json());
knex.schema.createTableIfNotExists('users', (table) => {
table.increments('id').primary();
table.string('name').notNullable(); // 显式指定不允许NULL的字段
table.integer('age').defaultTo(0); // 设置默认值
}).then(() => console.log('Users table created'));
app.post('/api/users', async (req, res) => {
try {
const { name, age } = req.body; // 从请求体获取数据
const [newUser] = await knex('users').insert({
name,
age: age || null, // 如果age不在请求体中,则使用NULL
});
res.status(201).json(newUser);
} catch (error) {
res.status(500).json({ error: 'Failed to insert user' });
}
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
```
在这个例子中,我们创建了一个名为`users`的表,并在Express路由中接收POST请求,将接收到的数据插入到用户表中。`age`字段使用了默认值0,如果没有传入则默认为NULL。
阅读全文