我有一个用NodeJS和Angular2 +构建的应用程序。我想将NodeJs部分与Alexa集成在一起。我已经浏览了代码,但是发现的只有很多Intents函数,然后我甚至尝试查看以下github链接
https://github.com/alexa/skill-sample-nodejs-petmatch/blob/master/lambda/custom/index.js
但是我不知道从哪里开始。
NodeJs代码-
seekapi.service.js
// Require Neo4j
var neo4j = require('neo4j-driver').v1;
var path = require('path');
var logger = require('morgan');
var bodyParser = require('body-parser');
var express = require('express');
var router = express.Router();
var app = express();
// Create Driver
const driver = new neo4j.driver("bolt://localhost:11001", neo4j.auth.basic("neo4j", "lib1"));
app.set('views', path.join(__dirname, 'views'));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
var session = driver.session();
var request = require('request');
router.post('/', seekAPI);
module.exports = router;
//working code below
function seekAPI(req, res) {
console.log("INSIDE NODE JS CONTROLLER OF seekAPI");
console.log("BODY IS ", req.body);
session
.run(`MATCH p=()-[r:API]->() RETURN p;`)
.then(function (result){
res.send(result);
result.records.forEach(function(record){
console.log("record = ", record);
});
res.send(result);
})
.catch(function(err){
console.log("inside catch = " + err);
})
session.close();
}
console.log("Inside seekAPI-controller.js")
答案 0 :(得分:1)
由于已经在Angular应用中编写了代码库(API部分),因此可以在Web服务上公开API。该Web服务应符合contract given by Amazon。准备好Web服务后,请在Alexa console中配置Web服务URL,然后完成操作,立即在此处开始调用Alexa。
优点是,您可以使用现有应用程序部署,而不必在AWS Lambda中再次运行相同的API。
使用Web服务方法,您甚至可以使用ngrok https端点在本地计算机上调试技能。
我更喜欢这种Web服务方式,因为我可以在本地开发所有东西并部署在我的基础架构中。