nodejs 字符串拼对象出现[object object] ,如何才能正常解析?

发布于 2022-09-12 13:21:47 字数 704 浏览 13 评论 0

const MAIN_TEMPLATE = `
    import Vue from 'vue'
    import VueRouter from 'vue-router'
    import Home from '../views/Home.vue'
    Vue.use(VueRouter)
    const routes = [{
     path: '/', name: 'Home', component: Home,children:${router}
     },]
    const router = new VueRouter({
     mode: 'history', base: process.env.BASE_URL, routes})
    export default router
`
fs.writeFile(path,MAIN_TEMPLATE,err=>{})

上面代码执行后是下面带有 [object object]
image.png
children的数据是处理过的!想拼接后写入跟下面截图一样
router 是一个数组对象,
image.png

试过JSON.parse,JSON.stringify等 都是不行
请问有什么办法嘛~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我不是你的备胎 2022-09-19 13:21:47

字符串拼接符的原理是String的concat的api。

  • 比如
let b = [{name:'b'}]
let a =  `name${b}`;
  • node本身不支持es6,经babel会编译为es5代码
var b = [{
  name: 'b'
}];
var a = "name".concat(b);
  • 当字符串与数组进行拼接时,会展示为[object object]形式。
  • 所以如果要想不展示为[object object] 应当将数组变量转为字符串
var b = `[{
  name: 'b'
}]`;
var a = "name".concat(b);
  • 此时结果为
name[{
    name: 'b'
}]
与酒说心事 2022-09-19 13:21:47

不知这样可不可以:

1.先把router用一个函数包起来

function getChildren () {
    return [{
        path: '/home/index',
        name: 'home'
        component: () => import('../view/home/index')
    }]
}

2.利用getChildren.toString()拿到函数定义文本

const str = getChildren.toString()

3.最后用正则提取数据和拼接字符串

const reg = /^function [a-zA-Z_$]+ {0,1}\(\) {0,1}{\s+return([^]+)}$/m
str.match(reg)
const router = RegExp.$1

// 接下来拼接router
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文