当前位置: 首页 > news >正文

网站建设 技术 哪些内容外贸网站设计

网站建设 技术 哪些内容,外贸网站设计,深圳新生代网络推广,怎么编辑网页里面内容为什么80%的码农都做不了架构师#xff1f; 自 SAP HANA SP 11 之后#xff0c;可以使用 Node.js 作为 Hana 的编程接口。SAP 将 Application server 简称为 XS。现在 XS 已经演化为 Advanced 版本。为了区别#xff0c;早期的 XS 被称为 XS Classical。 从下… 为什么80%的码农都做不了架构师    自 SAP HANA SP 11 之后可以使用 Node.js 作为 Hana 的编程接口。SAP 将 Application server 简称为 XS。现在 XS 已经演化为 Advanced 版本。为了区别早期的 XS 被称为 XS Classical。 从下图可以看出和 Hana DB 进行交互的有 HANA XS Classical 、Hana Cloud Platform (HCP) 和 XS Advanced。而能够运行在 HCP 和 XS Advanced 的编程接口包括 XSJS (SAP 推出的服务器端 JavaScript但目前看社区并不活跃、Node.js、Tomcat / TomEE (Java 应用程序编写等。最近测试了 Node.js 编程接口感觉还不错。 hdb 模块 Node.js 的编程接口模块是 hdb可以用 npm install hdb 安装。Github 的源码地址为node-hdb。有示例和说明容易学习。 hdb CRUD 本文打算介绍两个方面 hdb CRUD 的基本方法 以及如何利用 Node.js 的 express 框架实现 REST 风格 API (Restful API)。 先看看基本使用方法 var hdb require(hdb)var client hdb.createClient({host: 192.168.2.100,port: 30015,user: STONE,password: pwd });client.connect(function(err){if (err){return console.error(Connect error, err);}var sql SELECT * FROM STONE.EMP_MASTER;client.exec(sql, function(err, rows){if (err){return console.error(Execute error, err);}console.log(Results:, rows);}); });和前几篇一样仍然使用 STONE.EMP_MASTER 作为数据源。我们注意到Node.js 广泛使用异步和回调函数。使用异步的原因是 : Node.js 是单线程的通过异步来避免阻塞 blocking。比如从Hana 数据库查询 employees 表但不知道需要多久能获得查询结果通过异步机制数据查询到之后放在 rows 中。 上面的 SQL 语句没有参数。下面通过 insert 语句来说明带参数 SQL 语句的处理方法。 client.connect(function(err){if (err){return console.error(Connect error, err);}var sql INSERT INTO STONE.EMP_MASTER VALUES(?,?,?,?,?,?,?,?);client.prepare(sql, function(err, statement){if (err){return console.error(Prepare error:, err);}var params [9001,Male,18,test4qq.com,13800-138000,Bachelor,Married,1];statement.exec(params, function(err, affectedRows){if (err){return console.error(Execute error:, err);}console.log(Affected rows:, affectedRows);});}); });client.prepare() 先处理语句成功后放在 statement 中 statement.exec() 语句执行查询函数的第一个参数是 SQL 语句的参数。注意这个参数是数组类型即使只有一个参数也要使用数组。 提供 REST 风格的 Service 使用 Node.js 的 express 框架来实现。网上有非常多使用 express 创建 REST 风格 API 的教程这里就不细说步骤了。后面会介绍怎样在 OpenUI5 中通过 Rest Service 来对对数据库进行增删改查。 安装 Node.js 创建一个文件夹在文件夹中运行 npm init 创建 packages.json 文件。 安装 express这里提供一种方法 npm install express --save。--save 参数会修改 packages.json 文件。 安装 body-parser。这个模块将处理 post 请求对 post 请求进行解析。 工程的文件结构如下 主要文件有 server.js : 启动服务dbconfig.js: hana 数据库连接的配置信息emp.controller.js: emp_master 表增删改查emp_routes.js: 路由管理先说明 package.json 文件管理 app 依赖的模块 {name: hana_app,version: 1.0.0,description: hana in nodejs express,main: server.js,dependencies: {body-parser: ^1.18.2,express: ^4.16.2,hdb: ^0.15.2},devDependencies: {},scripts: {test: echo \Error: no test specified\ exit 1},author: Stone Wang,license: MIT }server.js var express require(express); var bodyParser require(body-parser);var app express();// parse requests of content-type - application/x-www-form-urlencoded app.use(bodyParser.urlencoded({extended: true}));// parse requests of content-type - application/json app.use(bodyParser.json());// home page app.get(/, function(req, res){res.json(Welcome.); });// register routes var route require(./app/routes/emp.routes.js) route(app);// listen on port 3000 app.listen(3000, function(){console.log(Server is running on port 3000.); });在 server.js 中定义首页的响应注册路由以及侦听 3000 端口。 dbconfig.js 保存数据库的配置信息是一个对象 module.exports {hana:{host: 192.168.2.100,port: 30015,user: STONE,password: pwd} };emp.controller.js var hdb require(hdb); var dbconfig require(../../config/dbconfig.js);var client hdb.createClient(dbconfig.hana);// list all exports.listAll function(req, res){var sql SELECT * FROM STONE.EMP_MASTER;client.connect(function(err){if (err){res.send({error: err.message});}client.exec(sql, function(err, rows){if (err){res.send({error: err.message});}client.end();res.send({rows});});}) };// query by id exports.queryById function(req, res){var sql SELECT * FROM STONE.EMP_MASTER WHERE EMP_ID?;client.connect(function(err){if (err){res.send({error: err.message});}client.prepare(sql, function(err, statement){if (err){res.send({error: err.message});}statement.exec([req.params.emp_id], function(err, rows){if (err){res.send({error: err.message});}client.end();res.send({rows});});});}); };// create exports.create function(req, res){var sql INSERT INTO STONE.EMP_MASTER VALUES(?,?,?,?,?,?,?,?);client.connect(function(err){if (err){res.send({error: err.message});}client.prepare(sql, function(err, statement){if (err){res.send({error: err.message});}var params [req.body.EMP_ID,req.body.GENDER,req.body.AGE,req.body.EMAIL,req.body.PHONE_NR,req.body.EDUCATION,req.body.MARITAL_STAT,req.body.NR_OF_CHILDREN];statement.exec(params, function(err, data){if (err){res.send({error: err.message});}client.end();res.sendStatus(200);});});}); };// update exports.update function(req, res){var sql UPDATE STONE.EMP_MASTER SET GENDER?, AGE?, EMAIL?, PHONE_NR?, EDUCATION?, MARITAL_STAT?, NR_OF_CHILDREN? WHERE EMP_ID?;client.connect(function(err){if (err){res.send({error: err.message});}client.prepare(sql, function(err, statement){if (err){res.send({error: err.message});}var params [ req.body.GENDER,req.body.AGE,req.body.EMAIL,req.body.PHONE_NR,req.body.EDUCATION,req.body.MARITAL_STAT,req.body.NR_OF_CHILDREN,req.params.emp_id];statement.exec(params, function(err, data){if (err){res.send({error: err.message});}client.end();res.sendStatus(200);});});}); };// delete exports.delete function(req, res){var sql DELETE FROM STONE.EMP_MASTER WHERE EMP_ID?;client.connect(function(err){if (err){res.send({error: err.message});}client.prepare(sql, function(err, statement){if (err){res.send({error: err.message});}statement.exec([req.params.emp_id], function(err, data){if (err){res.send({error: err.message});}client.end();res.sendStatus(200);});});}); };emp.routes.js module.exports function(app){var empController require(../controllers/emp.controller.js);// list allapp.get(/employees, empController.listAll);// query by IDapp.get(/employee/:emp_id, empController.queryById);// createapp.post(/employee/create, empController.create);// updateapp.put(/employee/:emp_id,empController.update);// deleteapp.delete(/employee/:emp_id, empController.delete); };使用 Postman 测试 在项目文件下通过 node server.js 启动服务。然后打开 Postman 进行测试。以下是部分截图。 listAll create update delete update  转载于:https://my.oschina.net/fcweb/blog/1813688
http://www.pierceye.com/news/636049/

相关文章:

  • 贵阳网站建设钟鼎网络江门网站建设套餐
  • 263企业邮箱自动回复seo技巧与技术
  • 昆明响应式网站怎么做最火的视频网站
  • 中山微信网站西安网站建设麦欧科技
  • 西平县住房城乡建设局网站网站备案 教程
  • 怎么用ps做简单网站推广码怎么输入
  • 跨越速运网站谁做的桂林网站建设培训
  • 荥阳网站建设多少钱做网站 提要求
  • 大学生个体创业的网站建设网页素材及网站架构制作
  • 网站开发前端框架和后端框架做长海报的网站
  • 柳州网站制作建一个网站怎么赚钱
  • 建网站支持设备是什么意思wordpress 默认密码
  • 找人做效果图那个网站网站开发语言 asp
  • 山东省山东省建设厅网站首页百度助手免费下载
  • 北京网站建设认百度非企推广开户
  • 厦门模板建站系统网站icp备案信息注册
  • 网站建设维护人员多语言网站开发
  • 网站开发 论文大连微信公众号开发公司
  • 珠海网站建设王道下拉惠烟台网站制作专业
  • 用php做网站要用构架吗ios开发者模式
  • 如何实现一个制作好的网站wordpress cdn
  • 成都网站商城建设深圳制作网站制作公司哪家好
  • 谁可以做网站开发公司空置房拨款合同
  • seo网站管理网站建设信(信科网络)
  • 做网站需要哪些东西网站设计报价单模板
  • 合肥家居网站建设怎么样网站建设与维护中
  • 淘宝app网站建设做网页设计可以参考哪些网站
  • 合作建设网站协议江门seo计费管理
  • 企业管理网站模板保定网站制作设计哪个公司好
  • 物流网站查询优秀设计赏析网站