然后Node.js不是一个函数

时间:2017-06-30 22:41:52

标签: javascript node.js

我正在开发一个开源项目,我们希望将本地json文件用作数据库。我们决定使用这个包来处理getter和setter(https://github.com/typicode/lowdb)。

我已经复制了他们使用express的示例文件,但是我收到以下错误:db.defaults(...).write(...).then is not a function

这是我的Server.js文件:

import express from 'express'
import session from 'express-session'
import bodyParser from 'body-parser'
import promisify from 'es6-promisify'
import cors from 'cors'
import low from 'lowdb'
import fileAsync from 'lowdb/lib/storages/file-async'

import defaultdb from './models/Pages'

import routes from './routes/index.js'

const app = express();

const db = low('./core/db/index.json')

app.use(cors())

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.use('/', routes);

app.set('port', process.env.PORT || 1337);

db.defaults(defaultdb).write().then(() => {
    app.listen(app.get('port'), () => {
      console.log(`Express running → PORT ${server.address().port}`);
    });
});

我确保使用阶段0与babel,希望它能解决这个问题。但无济于事。任何帮助都会很棒!

1 个答案:

答案 0 :(得分:2)

如果您使用异步存储方法,

According to the documentation fileAsync仅返回一个承诺。您需要做的不仅仅是要求const db = low('./core/db/index.json', { storage: fileAsync }) 才能使其发挥作用;)

name="date"