如何使用node-jdbc获取生成的ID?

我正在使用node-jdbc和oracle驱动程序“ojdbc6_g.jar”连接到Oracle数据库。 我想执行一些插入查询。 问题: 如何使用node-jdbc将行插入到oracle时获取生成的Id? 我试图调用statement.getGeneratedKeys()但它在callback中返回以下错误: > { [Error: Error running instance method java.sql.SQLException: > operation not allowed > at oracle.jdbc.driver.OracleStatement.getGeneratedKeys(OracleStatement.java:8425) > at oracle.jdbc.driver.OracleStatementWrapper.getGeneratedKeys(OracleStatementWrapper.java:1106) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:483) ] cause: {} }

NodeJS + TypeScript:使用脚本编译代码的语法不清晰

我正在尝试在我的节点项目中使用Typescript,但遇到了一些问题。 这是我的index.ts文件: import express from 'express'; const app = express(); 我在跑: tsc –module commonsjs -d index.ts 我的输出是index.js: var express_1 = require('express'); var app = express_1["default"](); 这个["default"]是从哪里来的? 这使我的代码不能正常运行: var app = express_1["default"](); ^ TypeError: express_1.default is not a function 据我所知,我应该得到没有“默认”括号的代码,它会工作正常 – 我试图删除括号,它的工作。 我在这里错过了什么?

Javascript / Node JS最好的方法来创build单例对象

我完成了我的家庭工作,取得了完美的成绩。 但是我只想检查一下,这是创build单例实例还是其他任何方式的最佳方式: 我使用模块模式(闭包)创build了一个单例对象作为“app.js” var singleton1 = require('./singletonUser1'); console.dir(singleton1.getlocalvariable()); singleton1.setlocalvariable(20); console.dir(singleton1.getlocalvariable()); var singleton2 = require('./singletonUser2'); console.dir(singleton2.getlocalvariable()); singleton2.setlocalvariable(30); console.dir(singleton.getlocalvariable()); 实际单身人士对象(singleton.js): var singleton = (function () { var localvariable = 10; return { getlocalvariable: function () { console.dir('This is getInstance'); return localvariable; }, setlocalvariable: function (value) { console.dir('This is setlocalvariable'); localvariable = value; }, }; })(); module.exports = […]

Node Express – 存储和检索authentication令牌

我有一个快速应用程序设置,需要一些关于存储令牌的build议。 在validation用户帐户后,我正在从OAuth 2服务器接收访问令牌,然后我需要为后续的api请求使用该帐户。 我想隐藏来自客户端的令牌值,我相信这样做的一个方法是将令牌保存在服务器中的一个编码的cookie,以便进一步的请求时,这些可以通过中间件路由,然后cookie可以用于检索令牌存储服务器端,然后在正在进行的对实际api端点的请求中用作标题值。 有人实际上已经问过这个问题 – 如何在一个Angular应用程序中存储一个身份validation令牌这正是我在我的应用程序中使用的stream程,但答案谈论使用一个Angular服务,我不太确定我想做到这一点,当然这可以全部由Express处理,所以客户端代码不需要知道令牌,只是API服务器返回的任何错误。 所以我认为我需要stream量总结: 用户提交login凭证 OAuth 2服务器返回访问令牌 令牌被保存在Express中的某个地方 生成一个cookie并将其发送回客户端。 Cookie包含可能编码的令牌值? 或者,也许存储在Express中间件组件中的令牌值的id? 客户端发出api请求,哪个Express路由中间件启动。 快速检查cookie的存在,并解码令牌值,或以某种方式从存储机制服务器端检索。 令牌值然后被用作expression和最终api端点之间的头部 有可能中间件已经在那里处理这种事情,我已经看到PassportJS似乎是我可能要使用的有点东西,但我不太确定它处理我正在工作的服务器上的OAuth2令牌stream反对(密码授予),而是似乎更适合redirectloginOAuthstream量。 我当然需要在某处保存令牌值,所以某种forms的存储(不在内存中,我不认为)。 对于Express,我是相当新的,所以如果能够解决这个问题的话,我会很感激你的build议。 谢谢

定义没有在nodejs typescript应用程序中定义

我在打字稿中的nodejs应用程序,我已经写了一个文件server.js作为休闲: import express = require('express'); import mongoose = require('mongoose'); let app=express(); app.set('port', process.env.PORT || 3000); // Set port to 3000 or the provided PORT variable /** * Start app */ app.listen(app.get('port'), function() { console.log(`App listening on port ${app.get('port')}!`); }); 我已经使用了吞噬一切生成js文件 define(["require", "exports", 'express'], function (require, exports, express) { var app = express(); app.set('port', process.env.PORT || […]

使用Node.js通过其独特的_id更新多个MongoDB对象

基本上我试图根据他们唯一的objectID(_id)更新我的Mongo数据库上的多个对象。 我尝试了以下,但他们没有工作: var new_arr = []; for (var i = 0; i < req.body.length; i++) { // req.body is an array received from the POST request. new_arr.push({"_id": new mongodb.ObjectID(req.body[i])}) } console.log(new_arr); // new_arr is not accepted since an object is expected. job_applications.updateMany( new_arr , { $set: {"application_status": "rejected"} }, function (err, results) { console.log(results); console.log(err); […]

RegExp匹配的内容

我一直在试图从Python转换为node.js. 这是一个简单的程序,使用正则expression式来检查IP地址是公共还是私有: import re def is_private_ip(ip): """ Returns `True` if the `ip` parameter is a private network address. """ c = re.compile('(^127\.0\.0\.1)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^192\.168\.)') if c.match(ip): return True return False print is_private_ip('192.168.0.1') # True print is_private_ip('8.8.8.8') # False print is_private_ip('109.231.231.221') # False 我用Javascript来实现它,就像这样: var localIp = new RegExp(/(^127\.0\.0\.1)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^192\.168\.)/); console.log('192.168.0.1'.match(localIp)); console.log('8.8.8.8'.match(localIp)); console.log('109.231.231.221'.match(localIp)); 这给了我以下输出: [ '192.168.', undefined, undefined, undefined, […]

为什么createServer()被认为不是一个函数?

我安装了快递全球和npm安装了我的快递应用程序,但intellisence或应用程序都没有工作(我在Mac OS Yosemite上使用Visual Studio代码)。 这里是一个示例代码: /// <reference path="typings/node/node.d.ts" /> /// <reference path="typings/express/express.d.ts" /> var express = require('express'); var app = express.createServer(); app.get('/', function (req, res) { res.send('hi'); }) app.listen(8000); 这里是我得到的错误: Abeds-MacBook-Pro:myNode AZ$ node twitter.js /Users/AZ/Desktop/myNode/twitter.js:5 var app = express.createServer(); ^ TypeError: express.createServer is not a function at Object.<anonymous> (/Users/AZ/Desktop/myNode/twitter.js:5:19) at Module._compile (module.js:397:26) at Object.Module._extensions..js (module.js:404:10) […]

复制JSON只复制JSON的一半

我正在使用Webstorm的debugging器来检查我的Node应用程序的局部variables。 但是,当我右键单击我感兴趣的variables,然后单击Copy JSON ,粘贴的输出只包含一半的JSON。 有没有人遇到这个问题,你做了什么来解决这个问题? 是的,我可以console.log数据或写入一个文件,但我认为使用debugging器会更有效率。 在此先感谢,问

使用promise的asynchronousrecursion

所以我试图把我的代码转移到“承诺世界”,并在许多地方,当我不得不与asynchronousfunction“循环” – 我只是用这种方式recursion function doRecursion(idx,callback){ if(idx < someArray.length){ doAsync(function(){ doRecursion(++idx,callback) }); }else{ callback('done!') } } doRecursion(0,function(msg){ //… }); 现在我正在努力把变化变成承诺的世界,而且我很困难 var Promise = require('bluebird') function doRecursion(idx){ return new Promise(function(resolve){ if(idx < someArray.length){ doAsync(function(){ //… doRecursion(++idx) // how do i call doRecusion here…. }); }else{ resolve('done!') } }); } doRecursion(0).then(function(msg){ //… }); 谢谢。