vue怎样通过nodejs拿取数据库数据(vue要用到nodejs中的哪些知识)

技术vue+nodejs获取多个表数据的方法是什么这期内容当中小编将会给大家带来有关vue+nodejs获取多个表数据的方法是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。读取两个

在本期中,边肖将为您带来一些关于vue nodejs如何从多个表中获取数据的信息。文章内容丰富,从专业角度进行分析和描述。看完这篇文章,希望你能有所收获。

读取两个表的数据

用图像连接用户。

效果

vue+nodejs获取多个表数据的方法是什么

00-1010修改关联时,前端将数组[number]传递给后端,后端将其存储为字符串。

此时,在前端采集数据时,需要循环处理成数字阵列。

模板

差异

El-table : data=' state . tabledata '边框

El-table-column prop=' Name ' label=' Name ' width=' 180 '/

El-table-column prop=' relational ' label=' relational ' width=' 180 '/El-table-column

el-table-columnprop='path '标签='path '

模板#default='作用域'

div-for='(项,索引)in scope . row . path ' : key=' index '

img

: src=' http://localhost :3000/' item . path '

/

不间断空格

;       </div>
                </template>
            </el-table-column>
            <el-table-column label="Operations" width="120">
                <template #default="scope">
                    <el-button
                        type="text"
                        size="small"
                        @click.prevent="edit(scope.row)"
                    >
                        <el-icon>
                            <edit />
                        </el-icon>
                    </el-button>
                </template>
            </el-table-column>
        </el-table>
        <el-dialog v-model="state.dialogVisible" width="80%">
            <el-transfer
                v-model="state.rightValue"
                
                filterable
                :titles="['Source', 'Target']"
                :button-texts="['To left', 'To right']"
                :format="{
                noChecked: '${total}',
                hasChecked: '${checked}/${total}',
                }"
                :data="state.data"
            >
                <template #default="{ option }">
                    <span>{{ option.key }} - {{ option.label }}</span>
                </template>
            </el-transfer>
            <p>
                <el-button
                    type="primary"
                    size="medium"
                    @click.prevent="commit"
                >提交
                </el-button>
            </p>
        </el-dialog>
    </div>
</template>
<script lang="ts">
import {defineComponent, reactive} from 'vue'
import {relationlist,uploadorder,editrelation} from '../utils/api'
import {
    ElMessage, ElDialog
} from 'element-plus';
import { Edit } from '@element-plus/icons';
export default defineComponent({
    name : 'relation',
    components:{
        Edit, ElMessage, ElDialog
    },
    setup() {
        const state = reactive({
            tableData:[],
            dialogVisible:false,
            data:[],
            rightValue:[],
            editdata:{}
        })
        const init = function(){
            relationlist().then((res)=>{
                if (res.code === 200) {
                    res.list.forEach((ele)=>{
                        if(ele.relation){
                            ele.relation = ele.relation.split(',')
                            for (let i = 0; i < ele.relation.length; i++) {
                                ele.relation[i] = Number(ele.relation[i]);
                            }
                        }
                    })
                    state.tableData = res.list
                }
            })
        }
        const init1 = function(){
             uploadorder().then(res => {
                if (res.code === 200) {
                    let data = []
                    res.list.forEach(ele => {
                        data.push({
                            key:ele.id,
                            label:ele.name
                        })
                    });
                    state.data = data
                }
            })
        }
        const edit = function(row){
            state.editdata = row;
            state.dialogVisible = true;
            state.rightValue = row.relation||[];
        }
        const commit = function(){
            let data = {
                rightvalue:state.rightValue,
                ...state.editdata
            }
            editrelation(data).then((res)=>{
                if(res.code === 200){
                    ElMessage.success(res.msg)
                    state.dialogVisible = false
                    init() 
                }else{
                    ElMessage.error(res.msg)
                }
            })
        }
        init()
        init1()
        return {
            state,
            edit,
            commit
        }
    }
})
</script>

后端实现

//获取关联列表
router.get('/relationlist',async (req,res,next)=>{
  const result = await db.select(`SELECT * FROM user`)
  for (let i = 0; i < result.length; i++) {
    let ele = result[i];
    let uploadres = await db.select(`SELECT path FROM upload where id in (${ele.relation})`)
    ele.path = uploadres 
  }
  res.send(Success(result));
})
//修改关联列表
router.post('/editrelation',async (req,res,next)=>{
  let {id,rightvalue} = req['body']
  console.log(rightvalue);
  if(!id || !rightvalue){
    res.send(MError('请选择后再提交'))
    return
  }
  const result = await db.update('user', { relation:rightvalue}, ` WHERE id = ${id}`);
  if(result){
    res.send(Success(result))
    return
  }else{  
    res.send(MError('修改失败,请再次尝试'))
    return
  }
})

上述就是小编为大家分享的vue+nodejs获取多个表数据的方法是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/153808.html

(0)

相关推荐

  • 如何解决PHP xcache无法加载

    技术如何解决PHP xcache无法加载这篇文章主要讲解了“如何解决PHP xcache无法加载”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决PHP xcache

    攻略 2021年10月23日
  • RHEL7的基本命令有哪些呢

    技术RHEL7的基本命令有哪些呢今天就跟大家聊聊有关RHEL7的基本命令有哪些呢,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。本节单词整理:Termnial :

    攻略 2021年11月11日
  • 汇编语言的指令采用什么来取代二进制

    技术汇编语言的指令采用什么来取代二进制本篇内容介绍了“汇编语言的指令采用什么来取代二进制”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,

    攻略 2021年11月9日
  • Form表单使用、ajax解决表单提交后页面跳转数据丢失的问题缺点

    技术Form表单使用、ajax解决表单提交后页面跳转数据丢失的问题缺点 Form表单使用、ajax解决表单提交后页面跳转数据丢失的问题缺点一、Form表单基本使用
    表单概念:在网页中主要负责 数据采集功

    礼包 2021年10月19日
  • 舍瑟而作,子路曾皙冉有公西华侍坐实词

    技术舍瑟而作,子路曾皙冉有公西华侍坐实词《子路曾皙冉有公西华侍坐》里面的重点实词如下舍瑟而作:
    1、居则曰:居,闲居,平时在家  
    2、摄乎大国之间:摄,夹、迫近   
    3、加之以师旅:加,加到……上   
    4、比及三年

    生活 2021年10月30日
  • 网上学历认证,网上怎样打印学历认证证书

    技术网上学历认证,网上怎样打印学历认证证书学历认证报告打印流程1、登陆学信网“中国高等教育学生信息网站(学信网),点击“学历查询”网上学历认证。2、出现“零散查询”页面,点击“零散查询”。3、在页面里输入毕业证证书编号,

    生活 2021年10月21日