最近做了一个类似于论坛的项目,主要就是nodejs和mysql的使用。记录一下项目中遇到的问题和思路,这篇文章专门讲遇到的error、错误以及解决措施
-
SyntaxError: await is only valid in async function
场景是这样的:(具体逻辑就不写了,太多了写出来很乱,反而找不到重点)
const verifyUser=(*ctx*,*next*)*=>*{ //拿到用户名和密码 //判断用户名和密码不为空 //判断注册的用户名是否被注册过 await next() } const handlePassword=async(ctx,next)=>{ const {password} = ctx.request.body ctx.request.body.password = md5password(password) await next() } //调用顺序是这样的 userRouter.post('/',verifyUser,handlePassword,create)
解决:因为next()表示进行下一个中间件的处理,所以我一直在找下面的逻辑,没有看它本身,把verifyUser加上了个async修饰就好了。
const verifyUser=async(*ctx*,*next*)*=>*{}
-
Error: Cannot find module 'auth_router.js'
Require stack:
E:\VSCode Work\coderhub\src\router\index.js
E:\VSCode Work\coderhub\src\app\index.js
E:\VSCode Work\coderhub\src\index.js
看这里报错,他说找不到auth_router.js这个模块。但是我自己知道没问题,那就说明问题出在找的过程中了,然后看了看,改成相对路径require(
./${*file*}
)。前面忘记写./了const useRoutes = (*app*)*=>*{ fs.readdirSync(__dirname).forEach(*file**=>*{ if(*file* === 'index.js') return ; *const* router = require(`./${*file*}`) *app*.use(router.routes()) *app*.use(router.allowedMethods()) }) }
-
server at http://127.0.0.1:8000
E:\VSCode Work\coderhub\src\app\databse.js:14
conn.connect(err=>{
^