小编Len*_*olm的帖子

TypeError:回复不是函数

使用Hapi v17,我只是想创建一个简单的Web API来开始构建我的知识,但每次测试构建的GET方法时我都会遇到错误.以下是我正在运行的代码:

'use strict';
const Hapi = require('hapi');
const MySQL = require('mysql');

//create a serve with a host and port

const server = new Hapi.Server({
   host: 'serverName',
   port: 8000
});

const connection = MySQL.createConnection({
     host: 'host',
     user: 'root',
     password: 'pass',
     database: 'db'
});

connection.connect();

//add the route
server.route({
   method: 'GET',
   path: '/helloworld',
   handler: function (request, reply) {
   return reply('hello world');
}
});

server.start((err) => {
   if (err) {
      throw err;
   }
   console.log('Server running at:', server.info.uri);
});
Run Code Online (Sandbox Code Playgroud)

以下是我得到的错误:

Debug: internal, …
Run Code Online (Sandbox Code Playgroud)

javascript node.js hapi.js

12
推荐指数
1
解决办法
6284
查看次数

AngularJS指令,包装内容并保留原始元素的属性

我对AngularJS很新,还在学习.

我在创建一个包含指令所应用的元素(及其子元素)的指令时遇到了一些麻烦.考虑到AngularJS中许多其他常见的事情是多么容易,我不明白为什么这个看似常见的场景应该如此困难,所以很可能我在这里遗漏了一些东西.

我想要做的是将一个select元素包装在div中.我正在使用transclude来保留原始的select元素及其内容,但我无法让它正常工作.

HTML看起来像这样:

<select mlb-select ng-options="opt.val as opt.text for opt in mlb" ng-model="mlbOpt"></select>
Run Code Online (Sandbox Code Playgroud)

......我的指令看起来像这样:

directiveModule.directive("mlbSelect", function(){
    return {
        template: '<div class="mlb-select">'
                    + '<select ng-transclude></select>'
                    + '</div>',
        transclude: 'element',
        replace: true
    }
});
Run Code Online (Sandbox Code Playgroud)

生成的HTML如下所示:

<div class="mlb-select ng-pristine ng-valid" mlb-select ng-options="opt.val as opt.text for opt in mlb" ng-model="mlbOpt">
    <select ng-transclude class="ng-scope"></select>
</div>
Run Code Online (Sandbox Code Playgroud)

当然,这不是我想要的.为什么我的select元素的属性被添加到包装div而不是我用ng-transclude属性指定的元素?select元素需要保留ng-options和ng-model属性.

我需要做些什么才能做到这一点?

javascript angularjs transclusion angularjs-directive

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

尝试在 sbt-web 中为 prod 和 dev 使用不同的 pipelineStages

我有一个使用 Play Framework 2.3 的项目,并且在整个资产管道中处理 JS 文件的方式存在一些问题。我想根据应用程序是在开发模式还是生产模式下启动以不同方式处理我的 JS 源文件。具体来说,我不想在开发模式下运行管道阶段transpilewatch而是在阶段transpileuglify生产模式下运行。

我已经设置了全局管道阶段,pipelineStages := Seq(transpile, uglify)并且这仅在生产模式下运行,正如预期的那样。

现在,对于开发模式,我已经将其设置为pipelineStages in Assets := Seq(transpile, watch)适用于开发,但我的问题是它也以生产模式运行。该watch需求仅在开发模式下运行。

我没能找到很多关于这方面的好信息,Play 文档甚至没有提到pipelineStages in Assets,而sbt-web自述文件只是顺便提到了它。除此之外,我只找到了一堆博客文章。从我读到的内容来看,我的印象pipelineStages in Assets是开发模式独有的,但这种假设显然是不正确的。

我知道这playRunHooks对于开发人员专有的东西意味着什么,但我不能使用它,因为它在配置完成后运行,因此不能用于有条件地配置管道阶段。对于这个问题
,我目前非常丑陋的解决方法是,我在其中设置了一个系统属性,playRunHooks并在watch管道阶段周围有一个包装器,用于在调用该属性时检查该属性。

那么是否有任何正确的方法可以为我的 sbt-web 构建指定“仅开发”管道阶段?任何建议,将不胜感激。

(我们也在迁移到 Play Framework 2.6,以防它给我更多的可能性)

scala sbt playframework-2.3 sbt-web

5
推荐指数
0
解决办法
223
查看次数