小编fil*_*rak的帖子

Socket.io-client - TypeError: socket_io_client_1.default 不是函数

我已经socket.io-client安装在 Angular 5.2 应用程序中,在按照连接步骤(以前对我有用过很多次)之后,我收到了一个奇怪的错误。

TypeError: socket_io_client_1.default is not a function
    at new AuthService (auth.service.ts:15)
    at _createClass (core.js:10891)
    at _createProviderInstance$1 (core.js:10865)
    at resolveNgModuleDep (core.js:10850)
    at NgModuleRef_.get (core.js:12087)
    at resolveDep (core.js:12577)
    at createClass (core.js:12439)
    at createDirectiveInstance (core.js:12284)
    at createViewNodes (core.js:13742)
    at callViewAction (core.js:14176)
Run Code Online (Sandbox Code Playgroud)

这是第 15 行 AuthService

import {Injectable} from '@angular/core';
import io from 'socket.io-client';
import {CookieService} from 'ngx-cookie-service';


@Injectable()
export class AuthService {
  socket;
  domain = 'http://localhost:3000';
  isUserLoggedIn = false;
  cookie_key = '';
  user = {};

  constructor(private cookieService: CookieService) …
Run Code Online (Sandbox Code Playgroud)

javascript socket.io typescript angular

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

以最有效的方式更新许多(100k +)文档MongoDB

我有一个定期运行的函数,它更新了我的Collection中item.price的一些函数.将有10万个+项目.该函数如下所示:DocumentsPricesPrice Collection

 //Just a helper function for multiple GET requests with request.
let _request = (urls, cb) => {
    let results = {}, i = urls.length, c = 0;
    handler = (err, response, body) => {
        let url = response.request.uri.href;
        results[url] = { err, response, body };

        if (++c === urls.length) {
            cb(results);
        }
    };
    while (i--) {
        request(urls[i], handler);
    }
};
// function to update the prices in our Prices collection.

const update = …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb node.js promise

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

虽然我返回了Promise,但属性在void类型上不存在

我有一个功能可以在前端获取机器人的清单

  getBotInventory() {
    this.socket.emit('get bot inv');
    this.socket.on('bot inv', (botInventory) => {
      return new Promise((resolve, reject) => {
        if (botInventory.error) {
          return reject(botInventory.error);
        }
        this.botInventory = botInventory;
        resolve(botInventory);
      });

    });
  }
Run Code Online (Sandbox Code Playgroud)

如您所见,它返回一个Promise。

当我尝试调用它时

getBotInventory() {
    this.userService.getBotInventory().then(botInv..)
  }
Run Code Online (Sandbox Code Playgroud)

我越来越

错误TS2339:类型'void'上不存在属性'then'。

显然,它返回一个Promise。谁能指出问题出在哪里?

javascript typescript angular

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

在Bulma Framework的Columns中水平居中对齐项目

我想将我的内容水平放在Bulma的列中.

这是一个例子:

http://prntscr.com/hooo8l

我想把这些'class="column is-2"'放在columns'div中.

这是我的代码如何开始:

<div class="columns is-vcentered">
    <div class="column is-three-fifths is-offset-one-fifth has-text-centered">
        <div class="columns is-desktop is-vcentered">
            <div class="column is-2">
                    <button mat-raised-button color="primary" (click)="initTimer()">
                        <mat-icon>play_arrow</mat-icon>
                        Start Timer
                    </button>
            </div>
Run Code Online (Sandbox Code Playgroud)

我想把里面的按钮置于-2的中心位置.

任何帮助,将不胜感激.谢谢!

html javascript css sass bulma

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

如果满足条件,则停止div上的click事件 - Angular 5

我有一个循环,生成让我们说20个div.每个div都是来自我的本地对象数组的对象.这是代码:

<div *ngFor="let item of userInventory"
           class="col-2 c-pointer"
           (click)="addItemToArray(item)">
        <img src="{{item.image}}" class="img-fluid"/>
        <span class="d-block">{{item.name}}</span>
</div>
Run Code Online (Sandbox Code Playgroud)

当用户点击div(项目)时,它会将项目添加到数组中:

addItemToArray(item) {
    this.itemsToSend.push(item);
    item.isAdded = true;
  }
Run Code Online (Sandbox Code Playgroud)

在任何情况下都不允许用户在数组中添加相同的项目两次,但我不想改变userInventory数组(或splice()它).我希望它仍然可见,只需更改它上面的一些样式,使它看起来禁用.另外如您所见,当单击该项目时,item.isAdded变为true.

我想要做的是,什么时候item.isAdded是真的,禁用div上的(click)事件监听器(并添加一些样式),这样用户就不能多次添加相同的项目,尽管多次点击它.

这在当前的Angular实现中是否可行?

html javascript event-handling angular

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

如何在 nodejs 和 express 中更好地组织我的路线?

我现在的 WebAPI 代码非常模块化。但我希望它更多。

我有一个包含所有路由的 server.js 文件,我想将它们拆分为单独的控制器。关于如何做到这一点的任何想法?下面是一个例子:

app.get('/users/me', authenticate, (req, res) => {
    res.send(req.user);
});
Run Code Online (Sandbox Code Playgroud)

我的 server.js 文件中有一堆这样的路由。我将如何使用我的用户路由创建一个 user-routes.js 文件?同样对于我设置的所有其他集合的路线。

app.post('/firm', authenticate, (req, res) => {
    var firm = new Firm({
        name: req.body.name,
        number: req.body.number,
        _creator: req.user._id
    });

    Firm.findOne({
        number: req.body.number,
        _creator: req.user._id
    }).then(firmFound => {
        if (firmFound) {
            return res.status(400).send({
                message: 'Firm with that name or number already exists.'
            })
        }
        firm.save().then((firm) => {
            res.send(firm);
        }, (e) => {
            res.status(400).send(e);
        });

    });
});
Run Code Online (Sandbox Code Playgroud)

javascript routing node.js express

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