小编use*_*od2的帖子

JS - 如何访问同一文件中的 module.exports 函数

我有一个看起来像的函数:

module.exports = myFunction() {
  //do some stuff
}
Run Code Online (Sandbox Code Playgroud)

我可以使用其他文件很好地访问它 var myFunction = require(.thepath.js)

但是,我如何从它创建的文件中访问它。

我试过了myFunction()this.myFunction()但都不起作用。

谢谢

javascript node.js

6
推荐指数
1
解决办法
4318
查看次数

Typescript - 检查对象是否具有所有接口属性

假设我有一些接口:

export interface MyDocument {
    id: string,
    collection: string[];
}
Run Code Online (Sandbox Code Playgroud)

然后我创建一个新的(以及将现有类型转换为该类型):

const workingDocument = <MyDocument>document;

最后,我有这个 if 语句块来检查它是否真的包含我在该接口中指定的所有内容:

if (!workingDocument.id) {
   throw new Error("Document missing `id`");
} else if (!workingDocument.collection) {
   throw new Error("Document missing `collection` array");
}
Run Code Online (Sandbox Code Playgroud)

但是我似乎不喜欢这样,因为 if 语句可以永远增长并且不太好维护。

有没有更好的办法?

谢谢。

javascript interface typescript

6
推荐指数
1
解决办法
5019
查看次数

来自JUnit的TestNG @RunWith

我正从JUnit转到TestNG.

我的类已经有一个构造函数,所以我按要求添加了一个零参数构造函数,现在我注意到@RunWith正在使用org.junit.runner.

我认为我需要注释掉import org.junit.runner.RunWith;但是我需要使用的TestNG等价物是什么?

谢谢.

junit testng

5
推荐指数
1
解决办法
5054
查看次数

Express API - 验证 req.body 元素

我正在使用express和node.js构建一个api。

我正在进行基本验证,并希望验证传入的项目是否存在且安全(除了在客户端进行验证之外还完成)。

所以我有以下内容:

router.post('/register', function(req, res) {

  for (var itemsFromBody in req.body){
    console.log(itemsFromBody);

}
Run Code Online (Sandbox Code Playgroud)

然而,当我检查控制台时,我看到的只是键的名称,例如用户名、电子邮件等,而不是值本身。

我如何获得这些?

另外,我将对这些进行验证,例如确保其不为空 - 我是否需要遵循简单的 if-then 语句,或者是否存在一些不错的 npm 包允许我进行验证?

谢谢!

javascript node.js express

5
推荐指数
1
解决办法
4461
查看次数

护照Facebook-无法阻止发送令牌

更新:下面的当前解决方案。

我要在我的网站上添加Facebook登录-我希望这很简单,但事实证明很困难。

(内置:Node.js / Express API和Angular前端)

因此,我恳请您提供帮助:

1-代替successRedirect返回令牌

passport-facebook用来帮助登录过程,但是在回调而不是successRedirect中,我可以说返回一些包含令牌的json。请注意,令牌是一个JWT令牌,我已经在标准电子邮件身份验证中使用了该令牌,目前我在passport.serializeUser

passport.serializeUser(function(user, done) {
  var token = ///implementation for token
  done(null, user);
});
Run Code Online (Sandbox Code Playgroud)

然后在回调中执行类似的操作:

router.get('/login/facebook/callback',
  passport.authenticate('facebook', {
     res.json({success: true, token:token)
  })
);  
Run Code Online (Sandbox Code Playgroud)

2-客户端如何处理

然后我无法理解的第二点是如果我返回令牌,那么在我的客户端,我将以一种通常的$http.get方法“挑选”该令牌。但是URL流将如何工作-通过这个,我的意思是我有一个“使用Facebook登录”按钮,然后调用服务器端router.get('/login/facebook',该服务器端重定向到Facebook登录页面,因此一旦完成并返回令牌,它将如何知道回到首页。

希望我上面的问题有意义-对Angular来说是新来的,所以请原谅我,如果不清楚,我会尽力解释。


解决方案(如果我做的不好的事情,请让我知道您的想法)因此,经过更多的思考,我使用以下方法解决了这个问题:

1-在回调中,我做了一个新的API获取路由。然后,我在URL中发送用户ID以创建我的自定义JWT令牌:

router.get('/login/facebook/callback',
  passport.authenticate('facebook',
          { session: false, failureRedirect: "/processfblogin/false"  }),
  function(req, res) {
    res.redirect("/api/processfblogin/" + req.user._id);
  }
);
Run Code Online (Sandbox Code Playgroud)

然后从这里我制作令牌并发送URL。

这就是它变得有趣的地方。理想情况下,我想使用$httpget,但是COR一直给我一个302。因此,最终我将令牌附加为URL参数,并将其发送为:

res.redirect('http://localhost:3000/#/fbToProcess/' + token);
Run Code Online (Sandbox Code Playgroud)

然后,我用自己的控制器制作了该页面,该控制器仅获取令牌,将其保存并在身份验证页面上点击了所有内容。

我将继续寻找一种在json响应中发送令牌的方法,以便用户无需进入这个新的空白页面,但是在此之前它是可行的:-)

facebook node.js angularjs passport-facebook passport.js

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

Kubernetes + Minikube - 如何查看所有标准输出?

我正在使用 Minikube 在 Kubernetes 上运行 Ruby 应用程序。

但是,每当我查看日志时,我都看不到在本地运行应用程序时会在终端中看到的输出。

我想是因为它只显示 stderr?

如何查看所有类型的控制台日志(例如 fromputsraise)?

环顾四周,这是否与它处于分离模式有关 - 请参阅 Python 相关问题:未显示 Kubernetes Pod 中的日志

谢谢。

=

根据要求 - 这是 deployment.yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: sample
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: sample
    spec:
      containers:
        - name: sample
          image: someregistry
          imagePullPolicy: Always
          command: ["/bin/sh","-c"]
          args: ["bundle exec rake sample:default --trace"]
          envFrom:
          - configMapRef:
              name: sample
          - secretRef:
              name: sample
          ports:
            - containerPort: 3000
      imagePullSecrets:
        - name: regsecret
Run Code Online (Sandbox Code Playgroud)

ruby kubernetes minikube

5
推荐指数
1
解决办法
9264
查看次数

用于 Ruby 应用程序的 Dockerfile - 为什么 WORKDIR 指定为 /usr/src/app

查看官方的 Ruby 镜像 Docker 页面- 该示例显示了如何设置WORKDIR /usr/src/app.

有谁知道为什么这个特定的路径?

也就是说,可以将我的应用程序放在根目录下,或者换句话说,忽略 WORKDIR 吗?我知道它是根据文档推荐的,但我在不创建目录时遇到了一些问题。

只是想确保丢弃它没有问题。我以其他方式测试了我的图像,它按预期工作。

谢谢。

ruby docker

5
推荐指数
1
解决办法
957
查看次数

Joi Schema 应该包含一个字段或另一个

我正在考虑使用 Joi 进行 api 验证。

我似乎无法确认我的架构是否正确,因为我希望需要电子邮件或手机(但它们都不能为空/不存在) - 以下是否正确?

var schemaForRegistration = Joi.object().keys({
      email: Joi.string().email(),
      mobile:Joi.number().integer()
}).without('email', 'mobile');
Run Code Online (Sandbox Code Playgroud)

谢谢

javascript joi

4
推荐指数
1
解决办法
4155
查看次数

为什么发送API状态代码?

我正在使用node.js构建我的第一个API,并且想知道我是否需要确保每个响应都发送状态代码,或者只是使用布尔值就可以了.

对安全性或其他事情至关重要吗?

所以代码明智:

return res.status(403).send({ message: 'No token provided.' });
Run Code Online (Sandbox Code Playgroud)

return res.json({ success: false, message: 'No token provided.' });
Run Code Online (Sandbox Code Playgroud)

谢谢.

api-design http http-status-codes node.js

4
推荐指数
1
解决办法
75
查看次数

Typescript - 具有任意数量键值的对象

我正在尝试编写一个接口来处理这样的数据:

interface SessionList {
   appInfo: Object(string: string | null);
}
Run Code Online (Sandbox Code Playgroud)

appInfo 下可能有 0 到多个项目。我试图找到正确的语法但不是运气 - 目前在:

appInfo: Object(string: string | null);

有任何想法吗?

typescript

3
推荐指数
1
解决办法
860
查看次数