google translate 的简单实现

google translate 的简单实现

const port = 3000
const fs = require('fs')
const path = require('path')
const spdy = require('spdy')
const express = require('express')
const bodyParser = require('body-parser');
const translate = require('google-translate-api')
const app = express()

app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());

app.get('/fy',function(req,res){
	console.log(req.query);
	const fr = req.query.from;
	const to = req.query.to;
	const str = req.query.str
	if (!str || !to){
		res.send({err:'parma [to] and [str] must be null!!'});
		return;
	}

	translate(str,{to:to}).then(rtn=>{
		//console.log(rtn.text);
		//console.log(rtn.from.language.iso);
		res.set({ 'content-type': 'application/json; charset=utf-8' })
		res.send({v:rtn.text});
		}).catch(err=>{
			console.log(err);
		});
});

app.post('/fy',function(req,res){
	console.log(req.body);
	let fr = req.body.from
	let to = req.body.to
	let str = req.body.str
	if(!to || !str){
		res.send({rtn:'failed'});
		return;
	}
	
	translate(str,{to:to}).then(rtn=>{
		res.set({ 'content-type': 'application/json; charset=utf-8' })
		res.send({v:rtn.text});
		}).catch(err=>{
			console.log(err);
		});
});


app.get('/iso',(req,res) =>{
	//console.log(translate.languages);
	res.status(200)
	//.json({a:'asdf'});
	.json(translate.languages);
});

app.get('/help',(req,res) =>{
	res.status(200)
	.json({iso:'/iso', help:'/help',fy:'/fy'});
});

app.get('*',(req,res) =>{
	res.status(200)
	.json({message:'ok'});
});


function fy(from,to,str, cb){
	translate(str,{to:to}).then(rtn=>{
		console.log(rtn.text);
		console.log(rtn.from.language.iso);
		cb && cb(rest.text)
	}).catch(err=>{
		console.log(err);
	});
}

const options = {
	key: fs.readFileSync(__dirname + '/server.key'),
	cert: fs.readFileSync(__dirname + '/server.crt')
}

spdy
	.createServer(options, app)
	.listen(port, (error) =>{
	if(error){
		console.error(error)
		return porcess.exit(1)
	}else{
		console.log('Listening on port:' + port + '.')
	}
});

支持get 和post  方法,支持/help

转载于:https://my.oschina.net/doz/blog/1940666

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值