我使用 micro 创建了一个小 api。
运行localhost:3000/get-status
应该返回数据对象。到目前为止,console.log()
正在打印预期的对象。
但是在我得到的浏览器Endpoint not found
和服务器上我得到了错误Si7021 reset failed: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
我的getStatus()
功能做错了什么?我想我已经把一些东西与承诺和异步的东西混为一谈了。也许我不必要地嵌套了函数......
const { send } = require('micro')
const { router, get } = require('microrouter')
const Si7021 = require('si7021-sensor')
const getStatus = async (req, res) => {
const si7021 = new Si7021({ i2cBusNo: 1 })
const readSensorData = async () => {
const data = await si7021.readSensorData()
console.log(data)
send(res, 201, { data })
}
si7021.reset()
.then((result) => readSensorData())
.catch((err) => console.error(`Si7021 reset failed: ${err} `))
}
const notFound = (req, res) => {
console.log('NOT FOUND.')
send(res, 404, 'Endpoint not found')
}
module.exports = router(
get('/get-status', getStatus),
get('/*', notFound)
)