Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Vue无法导入jsonwebtoken,这表明未找到依赖项:net dns_Node.js_Webpack_Vuejs2_Json Web Token - Fatal编程技术网

Node.js Vue无法导入jsonwebtoken,这表明未找到依赖项:net dns

Node.js Vue无法导入jsonwebtoken,这表明未找到依赖项:net dns,node.js,webpack,vuejs2,json-web-token,Node.js,Webpack,Vuejs2,Json Web Token,这是我的代码auth.js(koa) 这是我的TodoList.vue(vue) 。。。 从“jsonwebtoken”导入jwt 导出默认值{ 已创建(){//组件创建时调用 const userInfo=this.getUserInfo() 如果(userInfo!==null){ this.id=userInfo.id this.name=userInfo.name }否则{ this.id=“” this.name=“” } }, 数据(){ 返回{ 名称:“莫鲁内尔芬”, 待办事项:'

这是我的代码auth.js(koa)

这是我的TodoList.vue(vue)

。。。
从“jsonwebtoken”导入jwt
导出默认值{
已创建(){//组件创建时调用
const userInfo=this.getUserInfo()
如果(userInfo!==null){
this.id=userInfo.id
this.name=userInfo.name
}否则{
this.id=“”
this.name=“”
}
},
数据(){
返回{
名称:“莫鲁内尔芬”,
待办事项:'',
activeName:'第一',
名单:[],
计数:0
}
},
计算:{//计算属性用于计算是否已经完成了所有任务
完成(){
让计数=0
让长度=this.list.length
for(让我加入此.list){
此.list[i]。状态===true?计数+=1:“”
}
this.count=count
如果(计数==长度| |长度==0){
返回真值
}否则{
返回错误
}
}
},
方法:{
addTodos(){
如果(this.todos===''){
返回
}
设obj={
状态:false,
内容:this.todos
}
此.list.push(obj)
this.todos=“”
},
已完成(索引){
this.$set(this.list[index],'status',true)
这是一封$message({
键入:“成功”,
信息:'任务完成'
})
},
删除(索引){
此.list.splice(索引,1)
这是一封$message({
键入:“info”,
信息:'任务删除'
})
},
还原(索引){
this.$set(this.list[index],'status',false)
这是一封$message({
键入:“info”,
信息:'任务还原'
})
},
getUserInfo(){
const-token=sessionStorage.getItem('my-token')
如果(令牌!==null){
让decode=jwt.verify(令牌“vue koa demo”)
返回解码
}否则{
返回空
}
}
}
}
...
然后在vsCODE npm中运行dev

未找到这些依赖项:

  • net in./~/joi/lib/string.js
  • dns位于./~/isemail/lib/isemail.js
要安装它们,可以运行:npm install--save net dns

我试过了,但现在问题是

未找到这些依赖项:

  • fs in./~/native dns/lib/platform.js
  • 在./~/native dns/lib/server.js、./~/native dns/lib/utils.js和1个其他
要安装它们,可以运行:npm install--save fs dgram


jsonwebtoken已经是一个node.js模块,应该在服务器端使用。要在客户端进行解码,可以使用jwt decode。
这是我从

ps中发现的:jwt在auth.js中运行良好,但当我从vue中的“jsonwebtoken”导入jwt时,它显示了问题所在
const auth=require('../function/auth');
const jwt = require('jsonwebtoken');
const bcrypt = require('bcryptjs');

var log = async (ctx,next)=>{

     var Account=ctx.request.body.account,
            Password=ctx.request.body.password,
            query={
                account:Account,
            }
        var data=await auth.log(query);

        if(data.length>0){
            if(bcrypt.compareSync(Password,data[0].password)){
                const userToken={
                    account:data[0].account,
                    id:data[0]._id
                }
                const secret = 'vue-koa-demo';
                const token =jwt.sign(userToken,secret);
                ctx.response.type='application/json'
                ctx.response.body={
                    sta:true,
                    token:token}
            }
            else if(!bcrypt.compareSync(Password,data[0].password)){
                ctx.response.type='application/json'
                ctx.response.body={
                    sta:false,
                    info:'密码错了'}


            }

        }if(data.length==0){
                ctx.response.type='application/json'
                ctx.response.body={
                    sta:false,
                    info:'账号不存在'}
        }

}
...
<script>
import jwt from 'jsonwebtoken'
export default {
  created () { // 组件创建时调用
    const userInfo = this.getUserInfo()
    if (userInfo !== null) {
      this.id = userInfo.id
      this.name = userInfo.name
    } else {
      this.id = ''
      this.name = ''
    }
  },
  data () {
    return {
      name: 'Molunerfinn',
      todos: '',
      activeName: 'first',
      list: [],
      count: 0
    }
  },
  computed: { // 计算属性用于计算是否已经完成了所有任务
    Done () {
      let count = 0
      let length = this.list.length
      for (let i in this.list) {
        this.list[i].status === true ? count += 1 : ''
      }
      this.count = count
      if (count === length || length === 0) {
        return true
      } else {
        return false
      }
    }
  },
  methods: {
    addTodos () {
      if (this.todos === '') {
        return
      }
      let obj = {
        status: false,
        content: this.todos
      }
      this.list.push(obj)
      this.todos = ''
    },
    finished (index) {
      this.$set(this.list[index], 'status', true)
      this.$message({
        type: 'success',
        message: '任务完成'
      })
    },
    remove (index) {
      this.list.splice(index, 1)
      this.$message({
        type: 'info',
        message: '任务删除'
      })
    },
    restore (index) {
      this.$set(this.list[index], 'status', false)
      this.$message({
        type: 'info',
        message: '任务还原'
      })
    },
    getUserInfo () {
      const token = sessionStorage.getItem('my-token')
      if (token !== null) {
        let decode = jwt.verify(token, 'vue-koa-demo')
        return decode
      } else {
        return null
      }
    }
  }
}
</script>
...