vue调用本地exe程序, 原生js同理


此方法需要后端的配合,简单来说了下实现思路,我是使用node+express搭建了一个服务,通过引用node中的 child_process 模块来实现的这个需求

1.搭建服务

在项目根目录下创建 bin/index.js

const express = require('express'); //npm下载并引入express模块 npm -express -D
const router = require('../router/index.js');
var ejs = require('ejs')
var path = require('path');


const app = express();
app.use('/plugIn',express.static(path.join(__dirname,'../plugIn'))) 

app.set('views', path.join(__dirname,'../views'));

app.set( 'view engine', 'html' );
app.engine( '.html', require( 'ejs' ).__express );

app.use(`/index`,router)

app.listen(8080,function(err){  //8080 想要监听项目的端口号
	if(err){
		console.log(err)
	}else {
		console.log('项目启动成功')
	}
})

2.路由文件

在此处调用 require(‘child_process’).exec 可以将本地exe程序直接打开

const express = require(`express`)
const app = express();
const router = express.Router()


router.use((req, res, next) => {
  console.log(`路由执行成功啦~~~`, Date.now());
  next()
})

router.get(`/`, (req, res, next) => {
  res.render('org')
})

router.get(`/exec`, (req, res, next) => {
	require('child_process').exec('start D:\\软件\\GoldenSoftware\\Surfer\\Surfer.exe')
	
	console.log(123)
  res.send('1')
})

module.exports = router

3.前端发起请求

    import axios from 'axios'; //引入axios
    export default {
		created() {
			//调用这个定义好的后端接口就可以了
			axios.get('http://localhost:8080/index/exec').then(res => {
                console.log(res)
            })
		}
	}

在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐