小编Wag*_*sUK的帖子

如何使用NodeJS和Express从app.js中分离路由和模型

我正在使用Node和Express创建一个应用程序.但是,我可以看到很快就很难管理放在里面的所有路线app.js.我已将所有模型放在子目录中/models.

这是我的app当前结构:

app.js
models
  -- products
  -- customers
  -- ...
public
views
node_modules
Run Code Online (Sandbox Code Playgroud)

app.js:

var express = require('express'),
    routes = require('./routes'),
    user = require('./routes/user'),
    http = require('http'),
    path = require('path'),
    EmployeeProvider = require('./models/employeeprovider').EmployeeProvider,
    Products = require('./models/products').Products,
    Orders = require('./models/orders').Orders,
    Customers = require('./models/customers').Customers,
    checkAuth = function(req, res, next) {
      if (!req.session.user_id) {
        res.send('You are not authorized to view this page');
      } else {
        next();
      }
    };

var app = express();
Run Code Online (Sandbox Code Playgroud)

然后一些配置一样port,views目录,渲染引擎等. …

node.js express

32
推荐指数
3
解决办法
6万
查看次数

如何在Rails 4 App中启用CORS

我正要把我的头发拉出来...我从早上起就试图在这个Rails应用程序中启用CORS,它只是不起作用.我试过这个,使用 Rack Cors Gem,这个答案和这篇文章都没有成功.

有人能指出我正确的方向吗?

这是我的js:

      var req = new XMLHttpRequest();

      if ('withCredentials' in req) {
            // req.open('GET', "https://api.github.com/users/mralexgray/repos", true);
            req.open('GET', "http://www.postcoder.lc/postcodes/" + value, true);
            // Just like regular ol' XHR
            req.onreadystatechange = function() {
                if (req.readyState === 4) {
                    if (req.status >= 200 && req.status < 400) {
                        // JSON.parse(req.responseText) etc.
                        console.log(req.responseText);
                    } else {
                        // Handle error case
                    }
                }
            };
            req.send();
        }
Run Code Online (Sandbox Code Playgroud)

当我尝试这个url(来自外部客户端):https://api.github.com/users/mralexgray/repos工作正常,我假设问题出在我的Rails API上.我错了吗?

编辑:目前我在我的控制器中有这个:

skip_before_filter …
Run Code Online (Sandbox Code Playgroud)

ruby ajax ruby-on-rails cors ruby-on-rails-4

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

如何在Nginx中将所有Angular请求重定向到index.html

我已经创建了一个简单的Nginx配置文件来为Angular服务器,如下所示:

server {
  listen 80;
  listen [::]:80;

  root /path/to/apps/myapp/current/dist;
  access_log /path/to/apps/myapp/current/log/nginx.access.log;
  error_log /path/to/apps/myapp/current/log/nginx.error.log info;

  index index.html;

  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  location / {
    try_files $uri $uri/ =404;
  }
}
Run Code Online (Sandbox Code Playgroud)

所有工作都按预期正常.因为我正在使用Angular UI路由器,所以我想转发所有页面,index.html以便Angular接管(因此请求example.com/users/new将由Nginx重定向index.html,以便Angular UI处理它)用于页面重新加载,链接等.

我怎样才能做到这一点?

我一直在玩这样的选项:

server {
    #implemented by default, change if you need different ip or port
    #listen *:80 | *:8000;
    server_name test.com;
    return 301 $scheme://www.test.com$request_uri;
}
Run Code Online (Sandbox Code Playgroud)

答案所述.但根据所有要求,我无法做任何类似工作.

建议将不胜感激.

javascript nginx angularjs

12
推荐指数
2
解决办法
7479
查看次数

如何让systemd用Puma重启Rails App

我一直在努力这一周,现在似乎找不到答案.我已经用Capistrano部署了我的Rails应用程序.我使用Puma作为服务器.

当我部署时,一切正常.问题是让Puma在重启和/或崩溃时启动.

为了获得部署设置,我使用了本教程.我也在使用RVM.我似乎得到的问题是让服务启动Puma.这是我用过的(服务文件):

[Unit]
Description=Puma HTTP Server
After=network.target

[Service]
Type=simple

#User=my-user

WorkingDirectory=/home/my-user/apps/MyApp/current

ExecStart=/home/my-user/apps/MyApp/current/sbin/puma -C /home/my-user/apps/MyApp/shared/puma.rb

Restart=always

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

这不起作用.我开始认为问题是没有为所有用户安装Ruby,所以我为所有用户安装了RVM,但仍然遇到了同样的问题.我的服务器只有root和my-user.

看看Capistrano如何部署,它运行的命令是:cd /home/my-user/apps/MyApp/current && ( RACK_ENV=production /home/my-user/.rvm/bin/rvm default do bundle exec puma -C /home/my-user/apps/MyApp/shared/puma.rb --daemon ).如果我使用上述命令,我会收到来自Systmd的错误,抱怨缺少参数.所以我用它编写了一个脚本并获得了服务文件来调用这个脚本来启动应用程序.

这也行不通.需要注意的是,如果我调用脚本从任何服务器上的脚本,并启动应用程序,因此其对配置Systemd一个问题,但我无法弄清楚什么是错的,我不知道如何调试它.我在System的网站上看过调试页面,但它对我没有帮助.如果我systemctl status puma.service全部运行它会告诉我该服务处于失败状态,但它没有告诉我如何或为什么.

另外值得注意的是:如果我bundle exec puma -C /home/my-user/apps/MyApp/shared/puma.rb从我的App文件夹运行它可以正常工作,那么如何使用Systemd服务复制此命令?

linux ruby-on-rails nginx systemd puma

11
推荐指数
2
解决办法
5998
查看次数

如何使Sails js中的链接器与Jade一起使用?

我已经按照这里的说明进行操作但是我无法让链接器与Jade一起工作.但是,如果我使用ejs,它确实有效(当然除了jade/ejs文件之外,完全相同的应用程序).我错过了什么吗?

sails.js pug

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

如何获取Material 2(Angular 4)自动完成以搜索外部API

我试图让Angular Material 2自动完成工作来搜索API,而不是按照示例在数组内搜索.这是我试过的:

HTML:

<mat-form-field fxFlex="33" class="mr-20 mt-20">
  <input matInput placeholder="State" aria-label="State" [matAutocomplete]="auto" [formControl]="stateCtrl">
  <mat-autocomplete #auto="matAutocomplete">
    <mat-option *ngFor="let state of filteredStates | async" [value]="state.name">
      <span>{{ state.name }}</span>
    </mat-option>
  </mat-autocomplete>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)

TS:

this.stateCtrl = new FormControl();
this.filteredStates = this.stateCtrl.valueChanges
  .startWith(null)
  .debounceTime(400)
  .do(value => {
    this.ClientsService.search(value).then( res => {
      console.log(res, 'oi');
      this.states = res;
    })
  });
Run Code Online (Sandbox Code Playgroud)

但是,当我输入时,我收到此错误: Error: Cannot find a differ supporting object 'e' of type 'string'. NgFor only supports binding to Iterables such as Arrays.

请注意,这e是我在搜索字段中键入的内容.我从服务器获得的响应是​​一个包含对象的数组.

我在这里错过了什么?

material-design angular-material2 angular

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

如何为mac设置SublimeLinter

我一直在尝试设置SublimeLinter(Mac)但是必须出错,因为php lint根本不起作用.我已经多次安装和删除了包,尝试添加/删除对php的支持,我发现了不同的教程但没有工作.我认为Sublime软件包可以直接安装和使用.我错过了什么吗?

macos sublimetext2 sublimelinter

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

自定义视图/操作/控制器在Sails JS中不起作用

我必须做错事,但我看不到......基本上如果我通过sails generate controller products文件创建一个控制器/模型,/controllers/ProductsController我会在索引操作中添加一些变量,例如:

index: function(req, res) {

    return res.view({
        myOne: 'World?',
        myvar: 'hello???',
        title: 'Yeap'
    })

},
Run Code Online (Sandbox Code Playgroud)

当我检查localhost:1337/products时,变量确实在模板中打印出来.请注意,我没有添加自定义视图,我的模板文件位于views/products/index.jade(我使用的是Jade而不是EJS).但是,如果我创建一个自定义视图,/config/routes例如:

'/custom': {

    view: 'custom',
    controller: 'ProductsController',
    action: 'customAction'

}
Run Code Online (Sandbox Code Playgroud)

在我的ProductsController中,我有一个非常类似的操作,如前所述:

customAction: function(req, res) {

    return res.view({
        myOne: 'Hello?',
        myvar: 'World???',
        title: 'Yeap'
    })

},
Run Code Online (Sandbox Code Playgroud)

变量不会打印在我的模板中.该模板被称为正常,所以是控制器和动作(似乎).谁能解释我做错了什么?

node.js sails.js

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

如何清除 S3 上静态站点的缓存

好的,我在 S3 上托管了一个静态站点,它实际上是一个 Angular 应用程序。我使用 gulp 模块 S3 上传将我所有的文件上传到 S3。

我遇到的问题是文件似乎可以正常上传,但是当我访问该站点时,它似乎提供的是旧版本的文件,而不是最近上传的文件。我已经尝试从存储桶中删除所有文件并再次上传,但旧文件仍在网站上提供。如果我下载文件,我可以看到存储桶中的文件确实是正确的文件,但只是没有得到服务。

对于这个特定的存储桶,我没有使用 Cloudfront。我需要吗?或者有没有办法清除缓存?

在此先感谢您的帮助。

caching amazon-s3 amazon-web-services

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

使用 SequelPro 将表格导出为 csv 文件

我正在尝试使用 SequelPro 将 MySQL 表导出到 csv 文件中,但是结果文件的格式不正确。例如,在第一列应该是id,在某些记录中有一个数字,但在其他记录中有文本。这几乎发生在每一列中。

一种解释可能是该字段是垂直导出而不是水平导出(您id 1在第一行和id 10第 10 行有 。

也许我把选项(字段)弄错了,在这种情况下,我很感激帮助。

我需要的是文件将标题作为第一行,将实际数据作为后续行中的每个数据属性作为一列。

感谢帮助

PS:我试过这个,但我也在垂直获取数据。

mysql sequelpro

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