小编pro*_*ype的帖子

在Jax Rs/Appfuse应用程序中获取HttpServletRequest?

我使用AppFuse创建了一个基本的应用程序shell,并按照AppFuse教程使用Jax-RS创建了一个简单的RESTful服务.这很好用.调用http://localhost:8080/services/api/persons将Person对象的集合作为具有正确数据的Json格式字符串返回.

我现在想要从Appfuse公开的RESTful服务中访问ServletRequestServletResponse对象(使用另一个需要这些对象的库).

认为应该通过添加@Context注释来实现,例如关注此StackOverflow帖子和此论坛帖子.

但是,如果我添加@Context标记(见下文),它编译正常但在服务器重新启动时抛出异常(附在底部).

这是以下声明@WebService:

@WebService
@Path("/persons")
public interface PersonManager extends GenericManager<Person, Long> {
    @Path("/")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    List<Person> read();
    ...
}
Run Code Online (Sandbox Code Playgroud)

这里是我认为我会称之为@Context注释的实现类:

@Service("personManager") 
public class PersonManagerImpl extends GenericManagerImpl<Person, Long> implements PersonManager { 
    PersonDao personDao; 
    @Context ServletRequest request; // Exception thrown on launch if this is present 
    @Context ServletContext context;  // Exception thrown on launch of this is present 
    ... 
    } 
Run Code Online (Sandbox Code Playgroud)

希望我错过了一些简单的东西,要么包括要使其工作,要么意识到获得ServletRequest是不可能的,因为......任何线索都会受到欢迎.

我在IntelliJ的Tomcat上运行它. …

java rest servlets jax-rs appfuse

26
推荐指数
2
解决办法
4万
查看次数

在angular指令中获取原始的transcluded内容

我的目标是创建一个editable指令,允许用户编辑属性所附加的任何元素的HTML(参见Plunker:http://plnkr.co/edit/nIrr9Lu0PZN2PdnhQOC6 )

除了我无法获得翻译内容的原始原始HTML以初始化文本区域之外,这几乎可以正常工作.我可以得到它从文clone.text(),但缺少像HTML标签<H1>,<div>等等,以便点击没有编辑不幂等应用.

该方法clone.html()抛出错误,Cannot read property 'childNodes' of undefined

app.directive("editable", function($rootScope) {
  return {
    restrict: "A",
    templateUrl: "mytemplate.html",
    transclude: true,
    scope: {
      content: "=editContent"
    },

    controller: function($scope, $element, $compile, $transclude, $sce) {

      // Initialize the text area with the original transcluded HTML...
      $transclude(function(clone, scope) {

        // This almost works but strips out tags like <h1>, <div>, etc.
        // $scope.editContent = clone.text().trim();

        // this works much …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs transclusion

22
推荐指数
1
解决办法
1万
查看次数

将Express.js 2迁移到3,特别是app.dynamicHelpers()到app.locals.use?

更新了Express.js从版本2到3,以及随后的调用app.dynamicHelpers({..})打破,因为它不再出现在V3中:

app.dynamicHelpers({

    request: function(req){
      return req
    },
    ...etc.
});
Run Code Online (Sandbox Code Playgroud)

有一个迁移指南说:

  • app.dynamicHelpers() (使用中间件+ res.locals)

但我很难过如何做到这一点.有没有更具体的例子来说明如何迁移?

相关SO帖子: nodejs express 3.0

node.js express

18
推荐指数
2
解决办法
1万
查看次数

如何在Node.js中解析包含"NaN"的JSON字符串

有一个node.js应用程序正在接收包含文字NaN的JSON数据字符串,例如

 "[1, 2, 3, NaN, 5, 6]"
Run Code Online (Sandbox Code Playgroud)

JSON.parse(...)在Node.js 崩溃了.如果我可以进入一个物体,我想解析它.

我知道NaN这不是JSON规范的一部分.大多数SO链接(在json中发送NaN)建议修复输出.

在这里,尽管数据是在我无法控制的服务器中生成的,但它是由商业Java库在哪里我可以看到源代码.它由Google的Gson库生成:

private Gson gson = (new GsonBuilder().serializeSpecialFloatingPointValues().create()); 
... 
gson.toJson(data[i], Vector.class, jsonOut)
Run Code Online (Sandbox Code Playgroud)

所以这似乎是一个合法的来源.根据Gson API Javadoc,它说我应该能够解析它:

JSON规范的2.4节不允许使用特殊的双精度值(NaN,Infinity,-Infinity).但是,Javascript规范(参见4.3.20,4.3.22,4.3.23节)允许这些值作为有效的Javascript值.而且,大多数JavaScript引擎都会在JSON中接受这些特殊值而不会出现问题.因此,在实际层面上,即使JSON规范不允许将这些值作为有效的JSON接受也是有意义的.

尽管如此,Node.js和Chrome都失败了: JSON.parse('[1,2,3,NaN,"5"]')

在JSON.parse()中是否有要设置的标志?或者NaN作为文字接受的替代解析器?

我已经谷歌搜索了一段时间,但似乎无法找到关于这个问题的文档.

PHP:如何将无穷大或NaN数编码为JSON?

json gson node.js

17
推荐指数
3
解决办法
2万
查看次数

将GitHub项目的fork发布到新的NPM模块但保留与原始合并的选项?

GitHub和NPM上存在高质量的开源代码库,拥有广泛的用户群.

我已经分叉了这个项目并做了大量的扩展.我认为已准备好合并回来.但(适当地)它的项目所有者谁打电话不是我.现在已经好几周没有回复了.

一些用户已经在回购问题讨论中询问了这个被合并回来的问题,并且更多的用户直接与我联系以作为单独的项目发布到NPM.

严肃的开发人员可以通过GitHub获得新版本,但它只有原始源,而不是链接/缩小/定制版本,因为README表示make dist在它合并回来并且版本号递增之前不会运行.

认为它应该像创建这个fork的fork一样简单,并将其作为新的NPM模块发布.但GitHub不允许我这样做("你已经在看这个项目")

有没有办法可以将其作为新的NPM模块发布,但仍保留选项

  1. 我的fork向原始提交拉取请求
  2. 我的fork从原来获取上游更改
  3. 我的子fork从我的fork获取上游更改(因此原始)

我是否在新的电子邮件地址下创建了新的GitHub帐户?

在GitHub中分叉我的仓库的叉子

git merge fork github node.js

15
推荐指数
2
解决办法
4773
查看次数

即使只是语法糖,模块化SQL

有没有办法模块化SQL代码,以便更具可读性和可测试性?

我的SQL代码经常变成一系列复杂的嵌套连接,内部连接等,难以编写且难以调试.相比之下,在诸如Javascript或Java之类的过程语言中,人们会将离散元素作为单独的函数来捏合,这些函数将按名称调用.

是的,可以将每个查询作为完全独立的查询,存储在数据库中或作为存储过程编写,但通常我不想更改/混乱数据库,只是查询它很好,特别是如果DBA不希望授予所有用户写入权限.

例如,从概念上讲,复杂查询可能很容易用伪代码描述,如下所示:

(getCustomerProfile) 
left join 
(getSummarizedCustomerTransactionHistory) 
using (customerId) 
left join
(getGeographicalSummaries) 
using (region, vendor)
...
Run Code Online (Sandbox Code Playgroud)

我意识到从理论上看有很多关于这个主题的文章(下面的几个链接),但我只是想找到一种方法来使代码更容易正确编写,并且一旦编写就更容易阅读.也许只是语法糖来从视觉中抽象出复杂性,如果不是从执行中,那么在我试图不看的文字SQL中编译.类推...

  • 手写笔:CSS ::
  • CoffeeScript:Javascript ::
  • SAS Macro语言:SAS语言::
  • :SQL

如果特定的SQL风格很重要,我的大部分工作都在PostgresQL中.

http://lambda-the-ultimate.org/node/2440

SQL中的代码重用和模块化

数据库和功能编程是否存在争议?

sql abstraction

14
推荐指数
1
解决办法
2750
查看次数

在Angular指令中获取原始的被转换内容

是否有可能以编程方式获取Angular.js指令中的原始被转换内容?

我正在尝试创建一个editable可以添加到任何div 的指令,允许用户使用自定义角度指令编辑HTML内容.(设计目标是避免在应用程序中添加无限配置GUI功能,因为高级用户只需编辑HTML ...),例如:

 <div editable>
      <h1>Lorem Ipsem</h1>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p>
      <clock>A custom directive</clock>
 </div>
Run Code Online (Sandbox Code Playgroud)

以Plunker为例(http://plnkr.co/edit/nIrr9Lu0PZN2PdnhQOC6?p=preview):

  • 单击实心灰色栏上的编辑图标以打开编辑器
  • 输入带有标签的任何格式良好的HTML :(例如<h1>A title</h1><p>some content</p><clock></clock>)
  • 点击"申请"

到目前为止我喜欢这个:

  • 它可以添加到任何div
  • 它可以包含嵌套的自定义指令,使用$ compile
  • 它包括被抄送的内容

我还想不通的是:

  • 如何获取原始的transcluded内容来初始化textarea

在编译函数中,$transclude似乎包含模板mydirective,并且包含控制器函数,$transclude包含事物更改后的后编译内容,指令呈现等.

javascript angularjs angularjs-directive

14
推荐指数
1
解决办法
9692
查看次数

通过cid而不是id在Backbone.js集合中查找模型

对于尚未保存到服务器的模型,我可以使用Collection.get(id)通过cid在Backbone.js集合中查找模型吗?

从文档中看,似乎.get应该通过id或cid找到一个模型.但是,collection.get(cid)没有找到模型,而这确实如此collection.find(function(model) {return model.cid===cid; }).据推测,我忽略了一些基本的东西.

jsFiddle例如下面

var Element = Backbone.Model.extend({});
var Elements = Backbone.Collection.extend({ model:  Element });

var elements = new Elements(), el, cids = [];

for (var i=0; i<4; i++) {
    el = new Element({name: "element"+i})
    elements.add(el);
    cids.push(el.cid);
}

console.log(cids);
el1 = elements.get(cids[0]);     
console.log(el1);  // undefined


el1a = elements.find(function(model) { return model.cid === cids[0]; });
console.log(el1a);  // success
Run Code Online (Sandbox Code Playgroud)

Backbone.js - id vs idAttribute vs cid

javascript backbone.js backbone.js-collections

13
推荐指数
1
解决办法
1万
查看次数

在Excel,Chrome和Firefox中解析的日期时间格式

是否有适用于Excel,Chrome和Firefox(并且理想情况下更广泛)并且在美国和欧盟的各种地区有效的CSV日期时间格式?

Excel可以使用ISO日期读取CSV,但无法识别第一列中的ISO日期时间值:

这是一个示例CSV:

"datetime"            
"1985-07-17T09:12Z"   
"1985-07-17 09:12"    
"1985-07-17"          
"12/10/2010 9:12",
"10-Dec-2010 09:11",
"Dec 10, 2010 09:11"
Run Code Online (Sandbox Code Playgroud)
  • "1985-07-17T09:12Z" 解析Chrome和Firefox,但不解析Excel
  • "1985-07-17 09:12" 解析Chrome和Excel但不解析Firefox
  • "1985-07-17" 在Chrome,Excel和Firefox中进行分析,但却浪费时间
  • "12/10/2010 09:12" 在Chrome,Excel和Firefox中解析,但假设使用美国语言环境
  • "10-Dec-2010 09:11" 在Firefox中不解析
  • "Dec 10, 2010 09:11" 解析Excel,Chrome和Firefox ......但仅限于美国?

Chrome可以读取大量特定于语言环境的日期时间格式,但Firefox更为挑剔.

更新:添加了更完整的示例

问题:"Dec 10, 2010 09:11"仅仅因为我在美国,或者这项工作更普遍吗?

csv excel cross-browser

11
推荐指数
1
解决办法
569
查看次数

验证后,Passport.js + Express.js将用户转发到原始目的地

我有一个应用程序是服务器上的Node + Express + Passport和客户端上的jQuery + Backbone.js.客户端在URL中使用哈希标记,但是对于某些功能,用户登录是很重要的.

我希望可以通过URL访问该应用,例如http://mydomain.com/app#cone/waffle/flavor/mint/toppings/sprinkles:

  • 如果用户已经登录,他们会直接转到请求的URL而不会有麻烦
  • 如果用户尚未登录,/login则会转到然后转到请求的URL

继这篇SO帖子,关于Node.js Passport的Google策略的自定义returnUrl之后 ,我就这样了

  • 如果他们已经登录,他们会直接使用URL,哈希标签等
  • 如果他们没有被记录,则会将他们带到登录页面,然后到达请求的网址,但是......

它似乎在登录后从重定向上的原始URL中删除哈希参数.

有什么方法可以在将哈希参数重定向到原始目标时保留哈希参数吗?

从这篇文章中,从请求URL获取哈希参数我得到了哈希标签在服务器上不可用的想法,这是使用哈希标签的全部要点.

所以我怀疑这是不可能的.也许以某种方式在本地缓存params并在重定向上检索它们,对[original URL minus hastags] + #use-cached-params吗?

authentication node.js express passport.js

10
推荐指数
1
解决办法
2324
查看次数