小编eag*_*gor的帖子

从Rails应用程序发送电子邮件时的Net :: SMTPAuthenticationError(在登台环境中)

我正在从我的Rails应用程序发送电子邮件.它在开发环境中运行良好,但在暂存时失败.我收到以下错误:

Net::SMTPAuthenticationError (534-5.7.14 <https://accounts.google.com/ContinueSignIn?plt=AKgnsbtdF0yjrQccTO2D_6)
Run Code Online (Sandbox Code Playgroud)

请注意,我的暂存没有域名.

这是我在staging.rb中的设置

config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { :host => "my.ip.addr.here:80" }
config.action_mailer.smtp_settings = {
      :address => "smtp.gmail.com",
      :port => 587,
      :domain => 'my.ip.addr.here:80'
      :user_name => "my_email_name@gmail.com",
      :password => "my_email_password",
      :authentication => 'login'
}
Run Code Online (Sandbox Code Playgroud)

请帮忙.

编辑.

添加:tls => true选项后,我得到

OpenSSL::SSL::SSLError (Unrecognized SSL message, plaintext connection?)
Run Code Online (Sandbox Code Playgroud)

然后我将端口更改为25,现在我得到了这个(延迟30秒):

Timeout::Error (execution expired)
Run Code Online (Sandbox Code Playgroud)

gmail ruby-on-rails ruby-on-rails-3

91
推荐指数
6
解决办法
7万
查看次数

如何将ActiveSupport :: SafeBuffer转换为String?

我想从ActiveSupport :: SafeBuffer中获取String对象.方法to_s返回相同类型的ActiveSupport :: SafeBuffer.只有to_sym.to_s返回String,但这更像是一个hack.这是我的控制台播放:

irb(main):008:0> s = ActiveSupport::SafeBuffer.new("asdf")
# => "asdf"
irb(main):009:0> s.class
# => ActiveSupport::SafeBuffer
irb(main):010:0> s.to_s.class
# => ActiveSupport::SafeBuffer
irb(main):011:0> s.to_sym.to_s
# => "asdf"
irb(main):012:0> s.to_sym.to_s.class
# => String
Run Code Online (Sandbox Code Playgroud)

ruby

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

javascript日期时区问题

我需要一个具有日期和年份指定值的js Date对象.我希望 new Date("2000-01-01")给我一个2000对象的Date对象getFullYear(),但是如果我的计算机的时间设置设置为芝加哥时区,我会得到Fri Dec 31 1999 18:00:00 GMT-0600 (CST),而对于布宜诺斯艾利斯:Fri Dec 31 1999 22:00:00 GMT-0200 (ARST).

有没有办法创建Date对象,.getFullYear()返回我们在构造函数中设置的日期,无论在用户的机器上设置什么时区?

更新:我需要将此Date对象用于另一个库(调用其.getFullYear()方法,因此使用UTC getter实际上并没有帮助.

javascript timezone datetime date

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

JsTree v3.0拖放插件。删除后引用目标节点

我使用jsTree库的拖放插件(3.0版),通过以下代码,我可以绑定到drag'n'drop操作的末尾,但是我看不到获取对目标节点(该节点)的引用的方法我继续)。

$(document).on('dnd_stop.vakata', function(e, data) {
   // how to get target_node here?
});
Run Code Online (Sandbox Code Playgroud)

javascript drag-and-drop jstree

6
推荐指数
2
解决办法
9191
查看次数

如何将<input>放在<div>的中心

我的HTML看起来像这样:

<div class="item">
    <div class="check">
      <input type="checkbox">
    </div>
    <div class="descr"> ... </div>
    <div class="details"> ... </div>
</div>
Run Code Online (Sandbox Code Playgroud)

如何在div.check水平和垂直方向的中间对齐复选框?(".item"div 的高度是动态的)

html css html5 alignment css3

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

mongoose:禁止更新特定字段

var post = mongoose.Schema({
    ...
    _createdOn: Date
});
Run Code Online (Sandbox Code Playgroud)

我想_createdOn仅允许在创建文档时设置字段,并禁止在将来的更新中更改它.它是如何在Mongoose中完成的?

mongoose mongodb node.js

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

MongoDB唯一索引自定义错误消息E11000

有没有办法在MongoDB中为'E11000重复键错误'设置自定义错误消息?
(最好使用猫鼬):

userSchema.index({ name: 1, email: 1 }, { unique: true });
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

5
推荐指数
2
解决办法
1700
查看次数

SVG:添加阴影滤镜使直线不可见

我正在尝试为我的SVG添加一个阴影.它适用于所有2D对象,但是当相同的滤镜应用于直线(任一<line>或者<path>)时,该线变为不可见,并且不添加阴影.

演示:https://jsfiddle.net/ccj0Ldfh/1/

css svg visualization d3.js svg-filters

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

SVG:将鼠标移动到<image>元素会触发父<g>元素的鼠标输出事件(d3.js)

我有<g>元素<rect><image>内部.<g>有mouseout事件监听器.问题是当我将鼠标从rect移动到图像(在同一个内g)时,会触发mouseout事件(然后是'mouseover').

这是一个例子.(和Jsfiddle)

var x = 120;

var g = d3.select("svg")
    .append("g")
    .on('mouseover', function() {
        d3.select(this).append("text").text("mouseover").attr('transform','translate(0,'+x+')');
        x+=20;
    })
    .on('mouseout', function() {
        d3.select(this).append("text").text("mouseout").attr('transform','translate(0,'+x+')');  
        x+=20;  
    })

g.append("rect")
    .attr('width', 100)
    .attr('height', 100)
    .style('fill', 'lightgreen')

g.append('image')
    .attr("width", 30)
    .attr("height", 30)
    .attr("x", 35)
    .attr("y", 35)
    .attr("xlink:href","https://www.gravatar.com/avatar/f70adb32032d39add2559c2609a90d03?s=128&d=identicon&r=PG")
Run Code Online (Sandbox Code Playgroud)

如何防止mouseout事件触发?

javascript svg dom d3.js

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

Mongoose:指定"字符串数组"类型的字段

我正在使用字符串数组来保存电子邮件:

var user = new Schema({
  // other fields...

  emails: [String]
});
Run Code Online (Sandbox Code Playgroud)

更新此字段时遇到麻烦.比方说,email1和email2是我从视图中收到的值:
这很有效:

user.emails = [email1, email2];
user.save();
// fields are updated, all good
Run Code Online (Sandbox Code Playgroud)

而这不是:

user.emails[0] = email1;
user.emails[1] = email2;
user.save(function(err, savedUser) {
  console.log(savedUser.emails); // updated array [email1, email2]
  // but if I retrieve now the user, the 'emails' field will not have above changes.
});
Run Code Online (Sandbox Code Playgroud)

但奇怪的是,这有效:

user.emails = [email1];
user.emails[1] = email2;
user.save();
// user.emails == [email1, email2];
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么会这样吗?

mongoose mongodb node.js express

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

javascript - 获取Map.prototype.forEach()中的索引

Map.prototype.forEach用两个参数进行回调:值和键.是否有可能得到每个条目的索引,类似于Array.prototype.forEach((value, index) => {})

javascript dictionary ecmascript-6

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

Rxjs:在多个可观察量发出后获取最新值

我有多个在页面生命周期内发出值的可观察对象。例如:

chartData$: Observable;
tableData$: Observable;
filterData$: Observable;
Run Code Online (Sandbox Code Playgroud)

用户可以随时单击“下载”按钮,并获取结合了每个可观察量最后发出的值的 JSON:

downloadButtonClicked$.pipe(
    combine chartData$, tableData$ and filterData$    // <- how do I get latest values here?
).subscribe(([chart, table, filter]) => downloadJson(chart, table, filter))
Run Code Online (Sandbox Code Playgroud)

但是,downloadJson当这 3 个可观察量中的任何一个在页面生命周期中发出值时,不应调用该函数,仅在单击“下载”时调用。

太长了;

工作最优雅的解决方案(如迈克建议) https://stackblitz.com/edit/typescript-jm3zma?file=index.ts

rxjs rxjs-pipeable-operators rxjs6

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

如何使服务器组件反映通过服务器操作进行的数据更改?

我有一个服务器组件ChatList,它从数据库中获取数据并显示它:

// server component

import Link from "next/link";
import db from "@/prisma";

export const ChatList = async () => {
  const chats = await db.chat.findMany();

  return (
    <ul>
      {chats.map((chat) => (
        <li key={chat.id}>
          <Link href={`chat/${chat.id}`}>{chat.name}</Link>
        </li>
      ))}
    </ul>
  );
};

Run Code Online (Sandbox Code Playgroud)

然后我有一个服务器操作,它在同一个表中创建新记录:

"use server";

import db from "@/prisma";

export const createChat = async (name: string) => {
  const newChat = await db.chat.create({
    data: { name },
  });
  return newChat;
};
Run Code Online (Sandbox Code Playgroud)

action此操作作为 form prop被调用。

创建新记录后,如何告诉服务器组件ChatList …

reactjs next.js react-server-components next.js13

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