小编zcs*_*rei的帖子

是否有专门为Node.js开发实践而构建的客户端框架?

我想知道是否有一个客户端框架是基于Node实践构建的?我甚至"需要"使用这样的框架吗?

我不是试图在不同框架的用户之间引发火焰战争,我只想知道在Node.js中使用这些框架之一是否优于其他框架,或者我是否应该只评估它们之间的差异根本没有记住Node.

我刚刚开始使用Node.js开发.以前,我一直在使用Rails进行开发,并且我阅读了大量有关不同客户端JavaScript"MVC"框架的文章.目前,我认为值得关注的是Backbone.js,Ember.js,Knockout.js和Angular.js(按此特定顺序).

我读过像Backbone.js这样的东西是用Rails开发人员编写的,或者至少以Rails为框架.

在不考虑Node的情况下,我认为我更喜欢Ember + Handlebars用于模板化或Backbone +下划线用于模板化.在服务器端,我计划使用Express和MongoDB,我看到许多Node用户使用Jade进行模板操作,这也让我感到困惑.

在此先感谢您的帮助.

model-view-controller node.js backbone.js ember.js knockout.js

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

节点包管理器(NPM)似乎产生了重复的包

我一直在安装一些节点包,我注意到的是NPM创建了一堆重复项.

例如,我首先安装了mongoose,它自然地安装了一堆依赖项.然后我安装了mongodb软件包,它也带有bson作为依赖项.由于重叠依赖,我有以下异常:

Mongodb存在于以下目录中:

/usr/local/lib/node_modules/mongodb/
/usr/local/lib/node_modules/mongoose/node_modules/mongodb/
Run Code Online (Sandbox Code Playgroud)

另外,bson,mongodb的依赖关系存在于这两个方面:

/usr/local/lib/node_modules/mongodb/
/usr/local/lib/node_modules/mongoose/node_modules/mongodb/
Run Code Online (Sandbox Code Playgroud)

我意识到这些只是千字节的文件,但我觉得这可能会产生很多冗余,最终我可能会得到一个非常复杂的树,类似于以下内容:

/usr/local/lib/node_modules/[something1]/node_modules/[something2]/node_modules/[something3/.../.../node_modules/[somethingX]/
Run Code Online (Sandbox Code Playgroud)

在这种情况下,给定的[dependency]可能出现在/ usr/local/lib/node_modules下的X级别上.

我主要关心的是更新这些模块.我不觉得很难想象同时安装不同版本的并发模块.

将所有内容直接放在/ usr/local/lib/node_modules /然后交叉引用依赖项会不会更容易?

module node.js npm

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

如何部署Bower安装的软件包?

我使用Bower安装了一些软件包,但我不知道如何部署它们.

例如,我的第一个想法是创建一个将它们连接起来的Gulp任务 - 我用我的角度包做了这个:

gulp.task('libs', function () {
    'use strict';
    return gulp
        .src([
            './public/assets/libs/angular/angular.min.js',
            './public/assets/libs/angular-animate/angular-animate.min.js',
            './public/assets/libs/angular-routes/angular-route.min.js'
        ])
        .pipe(concat('libs.js'))
        .pipe(uglify())
        .pipe(gulp.dest('public/dist'));
});
Run Code Online (Sandbox Code Playgroud)

然而,虽然上面的这些包非常简单,但其他一些(确切地说,Bootstrap和jQuery)带有我不需要的源代码.如果我只是复制bootstrap.min.cssjquery.min.js我的dist文件夹?

坦率地说,我可以从CDN中包含所有这些文件,我还不明白为什么我会使用Bower(我一直在关注使用Bower的教程).

谢谢你的帮助!

jquery twitter-bootstrap angularjs bower gulp

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

在heroku中托管的nuxt项目中将所有路由重定向到https

我正在尝试创建一个中间件来将我的所有路由重定向到 https,我想我需要一个中间件,所以我redirect.js在 Nuxt 的中间件文件夹中创建了一个文件,然后将其添加到nuxt.config.js

router: {
  middleware: ["redirect"]
},
Run Code Online (Sandbox Code Playgroud)

这是我的redirect.js文件,它给了我一个服务器错误:

export default function({ app }) {
  if (process.env.NODE_ENV === "production") {
   if (app.context.req.header("x-forwarded-proto") !== "https") {
  app.context.res.redirect(`https://${app.context.req.header("host")}${app.context.req.url}`);
   }
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript redirect http heroku nuxt.js

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

如何在服务器端验证 Nuxt?

我花了一个晚上寻找这个问题的解决方案,似乎很多人都有它,最好的建议通常是“切换到 SPA 模式”,这对我来说不是一个选择。

我有 JWT 进行身份验证,使用JWTSessionsRails的gem。

在前端,我有 Nuxt with nuxt-auth,使用自定义方案,以及以下授权中间件:

export default function ({ $auth, route, redirect }) {
  const role = $auth.user && $auth.user.role

  if (route.meta[0].requiredRole !== role) {
    redirect('/login')
  }
}
Run Code Online (Sandbox Code Playgroud)

我的症状如下:如果我登录并浏览受限页面,一切都会按预期进行。我什至有fetchOnServer: false限制页面,因为我只需要公共页面的 SSR。

但是,一旦我刷新页面或直接导航到受限制的 URL,我就会立即被中间件重定向到登录页面。显然,在客户端通过身份验证的用户也不会在服务器端进行身份验证。

我有以下相关文件。

nuxt.config.js

...
  plugins: [
    // ...
    { src: '~/plugins/axios' },
    // ...
  ],

  // ...

  modules: [
    'cookie-universal-nuxt',
    '@nuxtjs/axios',
    '@nuxtjs/auth'
  ],

  // ...

  axios: {
    baseURL: process.env.NODE_ENV === 'production' ? 'https://api.example.com/v1' : 'http://localhost:3000/v1',
    credentials: true
  }, …
Run Code Online (Sandbox Code Playgroud)

javascript authentication jwt vue.js nuxt.js

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

如何在任何根元素之外向 Vue SFC 添加注释?

我所处的情况是,我在法律上必须在文件顶部添加版权声明,虽然我知道如何在 、templatescript内发表评论style,但我找不到有关如何在这些文件之外进行评论的文档。

根据文件的结构,我假设标准 HTML 注释 ( <!-- Hi there! -->) 应该有效,并且它:a.) 似乎有效,b.) 我的语法荧光笔接受它。

然而,我想确定这一点并了解它如何以及为什么以这种方式工作,我很惊讶 Vue 文档中似乎没有涵盖它。

vue.js

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

Rails 的 AWS CodeBuild 进程无法安装 pg gem

我正在尝试使用简单的 3 步 CodePipeline 流程将 Rails 部署到 Elastic Beanstalk。步骤 1 从 GitHub 获取源代码,将其提供给 CodeBuild,然后 CodeBuild 应创建构建并将其传递给 EB。

由于某种原因,当 CodeBuild 进程到达pggem 时,它失败并出现以下错误:

Fetching pg 1.3.5
Installing pg 1.3.5 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/root/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/pg-1.3.5/ext
/root/.rbenv/versions/2.7.2/bin/ruby -I
/root/.rbenv/versions/2.7.2/lib/ruby/2.7.0 -r ./siteconf20220419-56-10cqcfm.rb
extconf.rb
Calling libpq with GVL unlocked
checking for pg_config... yes
Using config values from /usr/bin/pg_config
Using libpq from /usr/lib64
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
checking …
Run Code Online (Sandbox Code Playgroud)

postgresql ruby-on-rails amazon-web-services aws-codepipeline aws-codebuild

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

验证预定义值的Mongoose模型

我有一个User属性为role(type is String)的模型.我想用户可以保存,只有当这个属性的值是user,provideradmin.

我该如何设置此类验证?

mongoose mongodb

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