小白求教~
//后端传递数据
app.post('/get-name',function(req, res) {
sql.query('select stuName from student',function(err, row){
if(err || row.length == 0) {
console.log(err);
} else {
var stuname = {}
for(var i = 0 ;i <row.length; i++) {
stuname [i] = row[i].stuName;
}
console.log(stuname);
res.send(stuname);
}
})
})
打印出来是
然后我v-for遍历
<ul><li v-for = "item in data">{{ item }}</li></ul>
data (){
return{
data: ''
}
},
mounted() {
var that = this;
this.$ajax.post('http://localhost:3000/get-name', this.$qs.stringify({
})).then(res => {
that.data = res.data;
})
}
结果就是三个句号了。。。
我将var stuname = []做数组也不行,请求各位大佬指点。
PS:大佬如果有时间再帮我解决一下一个sessionstorage的问题,,,
data (){
return{
name: sessionStorage.getItem('name')
}
}
<span class="st-name">{{ name }}</span>
这个span为什么没有变成A同学?
补充:首先谢谢各位的回答,白天我没时间看这个只有等到晚上才能继续弄,然后就是刚刚打开项目发现li里面有数据了,真是坑啊,,,,我什么都没有改,,,
然后第二个问题关于sessionstorage我一开始就设置了的,只是登陆成功之后一开始sessionstorage里面没有值,然后我要先点一下sessionstorage然后再点下面的localhost才会有值存进去,name是没有显示的。
this.$ajax.post('http://localhost:3000/login/stulogin',this.$qs.stringify({
})).then(res=>{
if(res.data.code == 1){
that.$message.success("验证通过");
sessionStorage.setItem('name',res.data.sname);
补充我是登陆跳转页面然后存值的,参考上面代码,然后登陆进去之后下面这里还没有值,已经跳转了,我需要点击一下sessionstorage然后在点那个 http://localhost:8081 才会有A同学显示(最开始那张里面有A同学的值),然后既然里面已经有值了我就name就getitem获得这个A同学,然后span应该就有显示才对,但是没有显示。
有个问题,不要把数组存成JSON对象,你的问题可能和这个有关,我没试过
v-for
能不能遍历对象。按照js的语法的话你for-in
遍历出来的是key
而不是value
。其次出现奇怪的问题你的第一反应应该是把奇怪的数据打印出来——你确实是打印出来了,但只在后端打印,没在前端打印,而你出问题的部分目前看来在前端。你的第二个问题的原因是你没有正确使用
sessionStorage
,会话存储也是key-value
结构的,从你的截图中看,你把一条记录的key
设置成了“A同学”,value
设置成了空串,存储中也确实没有name
这个key
,span
里当然不会有A同学了。具体使用方法参考w3cschool的教程即可。看题主的描述,我猜测你是跳转了页面之后再往
sessionStorage
里存东西?还是先往sessionStorage
里存东西再跳转页面?我试过后者,后者不会导致存储出现问题。看题主贴的代码sessionStorage.setItem('name',res.data.sname);
,这个操作如果正常完成,一定会往sessionStorage
里存入key
为“name
”,value
为res.data.sname
的值的记录,比如虽然题主找到了获取“A同学”的方法,但这没有从根本上解决问题,还是希望题主能先确认一下
sessionStorage
的功能正常,以及自己的用法的正确性。